Flink重要的角色

20200531——Flink架构体系

JobManager

负责任务调度执行和分发任务

称之为Master,用于协调分布式执行,用来调度task,协调检查点CheckPoint,协调失败时候恢复等,Flink运行时至少存在一个master处理器,如果配置高可用模式会存在多个master处理器,他们其中有一个是leader,而其他的都是standby

TaskManager

负责任务的进行
称之为worker,用于执行一个dataflow的task(或者说是特殊的subtask)、数据缓冲和datastream的交换,Flink运行时至少有一个worker处理器。

无界数据和有界数据

无界数据流

源源不断的数据,比如:网站的点击量,统计某个路口通过的车辆

有开始,没有结束。它们不会在生成时终止并且提供数据,必须连续处理无界流,也就是说必须在获取后立即处理event。对于无界数据流,我们无法等待所有数据都到达,因为输入是无界的,并且在任何时间都不会完成,处理无界数据流需要要求一待定顺序获取event

有界数据流

有界数据源:有固定数据的数据,比如半年内的所有订单
有界数据流:有界数据有明确定义的开始与结束,可以在执行任何计算之前通过获取所有数据来处理有界流,处理有界流不需要有序获取,因为始终可以对有界数据集进行排序,有界流的处理也成为批处理

再提到Flink

Flink是一个面向分布式数据流处理和批处理的开源计算平台,它能够基于同一个Flink运行时( Flink RunTime),提供流处理和批处理两种类型应用的功能,现有的开源计算方案,会把流处理和批处理作为两种不同的应用类型,因为他们要实现的目标是完全不相同的,流处理一般需要低延迟,Exactly-once保证,而批处理需要支持高吞吐,高效处理,所以在实现的时候通常是分别给出两套实现方法,或者通过一个独立的开源框架来实现其中每一种处理方案,例如:实现批处理的开源方案有MapReduce、Tez、Crunch、Spark,实现流处理的开源方案有Samza、Storm

Flink在实现流批处理的时候,与传统的统一方案不同,它从另一个视角看待流处理和批处理,将二者统一起来,Flink完全支持流处理,也就是说作为流处理看待时,输入数据流是无界的,批处理作为一种特殊的流处理,只是他定义的数据是有界的。

Flink数据流编程模型

20200531——Flink架构体系

提供了四种编程模型,分别对应我们不同的场景,无缝切换。

从数据结构和api层面 spark Vs flink

20200531——Flink架构体系

相关文章:

  • 2021-09-24
  • 2022-12-23
  • 2021-08-11
  • 2022-12-23
  • 2022-12-23
  • 2021-08-20
  • 2021-05-25
  • 2021-06-19
猜你喜欢
  • 2021-06-13
  • 2022-01-16
  • 2022-01-04
  • 2021-12-10
  • 2021-11-29
  • 2021-05-08
  • 2021-04-28
相关资源
相似解决方案