更新时间:2024-03-27 GMT+08:00
分享

应用开发简介

简介

Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。

Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。

Flink技术栈如图1所示。

图1 Flink技术栈

Flink在当前版本中重点构建如下特性,其他特性继承开源社区,不做增强。

  • DataStream
  • Checkpoint
  • 窗口
  • Job Pipeline
  • 配置表

架构

Flink架构如图2所示。

图2 Flink架构

Flink整个系统包含三个部分:

  • Client

    Flink Client主要给用户提供向Flink系统提交用户任务(流式作业)的能力。

  • TaskManager

    Flink系统的业务执行节点,执行具体的用户任务。TaskManager可以有多个,各个TaskManager都平等。

  • JobManager

    Flink系统的管理节点,管理所有的TaskManager,并决策用户任务在哪些Taskmanager执行。JobManager在HA模式下可以有多个,但只有一个主JobManager。

Flink系统提供的关键能力:

  • 低时延

    提供ms级时延的处理能力。

  • Exactly Once

    提供异步快照机制,保证所有数据真正只处理一次。

  • HA

    JobManager支持主备模式,保证无单点故障。

  • 水平扩展能力

    TaskManager支持手动水平扩展。

Flink开发接口简介

Flink DataStream API提供Scala和Java两种语言的开发方式,如表1所示。

表1 Flink DataStream API接口

功能

说明

Scala API

提供Scala语言的API,提供过滤、join、窗口、聚合等数据处理能力。

Java API

提供Java语言的API,提供过滤、join、窗口、聚合等数据处理能力。

分享:

    相关文档

    相关产品