首页  »  云计算知识  »  什么是 Flink

什么是 Flink?

Flink,即 Apache Flink,是核心用 Java 和 Scala 编写的分布式流数据流引擎,开源流处理框架的一种,由 Apache 软件基金会所开发。Flink 采用数据并行和流水线的方式,来执行任意流数据程序。

新用户享受中国区域 12 个月免费套餐

什么是 Flink?

首页  »  云计算知识  »  什么是 Flink

什么是 Flink?

什么是 Flink?

Flink,即 Apache Flink,是核心用 Java 和 Scala 编写的分布式流数据流引擎,开源流处理框架的一种,由 Apache 软件基金会所开发。Flink 采用数据并行和流水线的方式,来执行任意流数据程序。

新用户享受中国区域 12 个月免费套餐

Flink 和 Spark 的主要区别_设计理念不同

设计理念不同

Flink 是面向流的处理框架,基于事件驱动,属于流式计算,其通过流来模拟批进行计算实现批处理。Spark 是基于 Micro-batch,采用微批模拟流的计算,其以时间为单位,将数据流切分为一个个批次,并通过分布式数据集 RDD 进行批量处理。

Flink 和 Spark 的主要区别_架构不同

架构不同

Flink 在运行时,主要包含有 Jobmanager、Taskmanager 和 Slot。而 Spark 在运行时,主要角色包括 Master、Worker、Driver 和 Executor。

Flink 和 Spark 的主要区别_时间机制不同

时间机制不同

Flink 支持事件时间、注入时间、处理时间这三种时间机制,并且支持 watermark 机制以处理迟到的数据,所以在处理乱序大实时数据时更具优势。Spark 只支持处理时间,如果使用 processing time 模拟 event time 则容易产生误差,尤其在产生数据堆积的时候,误差会更明显。

Flink 和 Spark 的主要区别_吞吐量与延迟不同

吞吐量与延迟不同

Flink 由于其轻量级容错机制,且是基于事件,逐条处理消息,因此能达到毫秒级延迟,同时实现低延迟与高吞吐量兼顾。Spark 由于基于微批,且具备很好的流水线优化,所以其吞入量更大,但是只能达到秒级延迟。

Flink 和 Spark 的主要区别_设计理念不同

设计理念不同

Flink 是面向流的处理框架,基于事件驱动,属于流式计算,其通过流来模拟批进行计算实现批处理。Spark 是基于 Micro-batch,采用微批模拟流的计算,其以时间为单位,将数据流切分为一个个批次,并通过分布式数据集 RDD 进行批量处理。

Flink 和 Spark 的主要区别_架构不同

架构不同

Flink 在运行时,主要包含有 Jobmanager、Taskmanager 和 Slot。而 Spark 在运行时,主要角色包括 Master、Worker、Driver 和 Executor。

Flink 和 Spark 的主要区别_时间机制不同

时间机制不同

Flink 支持事件时间、注入时间、处理时间这三种时间机制,并且支持 watermark 机制以处理迟到的数据,所以在处理乱序大实时数据时更具优势。Spark 只支持处理时间,如果使用 processing time 模拟 event time 则容易产生误差,尤其在产生数据堆积的时候,误差会更明显。

Flink 和 Spark 的主要区别_吞吐量与延迟不同

吞吐量与延迟不同

Flink 由于其轻量级容错机制,且是基于事件,逐条处理消息,因此能达到毫秒级延迟,同时实现低延迟与高吞吐量兼顾。Spark 由于基于微批,且具备很好的流水线优化,所以其吞入量更大,但是只能达到秒级延迟。

​Flink 主要应用场景如下:

  • 数据分析场景:由于相对传统基于批的计算平台,流式计算平台具备实时性这一优点,所以常用于一些对实时性要求较高的应用场景里;
  • 事件驱动场景:由于 ​Flink 可基于 ​Flink Sql 或者其他 API,来完成一些复杂的计算或者过滤操作;
  • ETL 场景:因为 Flink 相较于传统 ETL 工具更为灵活,所以 Flink 可适用于 ETL 场景里。

Flink 运行架构包括作业管理器(JobManger)和任务管理器(TaskManager)两大组件。其中,作业管理器是一个 Flink 集群中任务管理和调度的核心,主要负责管理调度,是控制应用执行的主进程,因此通常情况下,每个应用都应该被唯一的作业管理器所控制执行。而任务管理器是 Flink 中的工作进程,负责执行任务处理数据,因此能够有一个或者多个任务管理器存在。

亚马逊云科技热门云产品

亚马逊云科技热门云产品

Amazon Batch

以完全托管的方式进行任何规模的批处理

Amazon Kinesis

轻松地实时收集、处理和分析视频和数据流

Amazon Elastic MapReduce

托管的 Hadoop 框架

欢迎加入亚马逊云科技培训中心

从 0 到 1 轻松上手云服务,获取更多官方开发资源及培训教程

准备好体验亚马逊云科技提供的云服务了吗?

新用户享受中国区域 12 个月免费套餐

开始使用亚马逊云科技免费构建

开始使用亚马逊云科技免费构建

关闭
热线

热线

1010 0766
由光环新网运营的
北京区域
1010 0966
由西云数据运营的
宁夏区域