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

Flink应用开发简介

Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。

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

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

  • Client

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

  • TaskManager

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

  • JobManager

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

Flink系统提供的关键能力:

  • 低时延

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

  • Exactly Once

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

  • HA

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

  • 水平扩展能力

    TaskManager支持手动水平扩展。

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

表1 Flink DataStream API接口

功能

说明

Scala API

提供Scala语言的API,提供过滤、join、窗口、聚合等数据处理能力。由于Scala语言的简洁易懂,推荐用户使用Scala接口进行程序开发。

Java API

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

有关Flink的详细信息,请参见:https://flink.apache.org/