Flink Task && SubTask

1. 基本概念

  • Task(任务):Task 是一个阶段多个功能相同 subTask 的集合,类似于 Spark 中的 TaskSet。
  • subTask(子任务):subTask 是 Flink 中任务最小执行单元,是一个 Java 类的实例,这个 Java 类中有属性和方法,完成具体的计算逻辑。
  • Operator Chains(算子链):没有 shuffle 的多个算子合并在一个 subTask 中,就形成了 Operator Chains,类似于 Spark 中的 Pipeline。
  • Slot(插槽):Flink 中计算资源进行隔离的单元,一个 Slot 中可以运行多个 subTask,但是这些 subTask 必须是来自同一个 application 的不同阶段的 subTask。
  • State(状态):Flink 在运行过程中计算的中间结果

2. Flink 数据流

  • Flink程序的基本构建块是流和转换。
  • 从概念上讲,流是对当前数据流向的记录(流也可能是永无止境的) ,而转换是将一个或多个流作为输入,根据需要求转换成我们要的格式的流的过程。
  • 当程序执行时,Flink程序会将数据流进行映射、转换运算成我们要的格式的流。每个数据流都以一个或多个源(Source)开始,并以一个或多个接收器(Sink)结束,数据流类似于任意有向无环图(DAG)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rf9A43Fb-1616407964664)(https://ci.apache.org/projects/flink/flink-docs-release-1.10/fig/program_dataflow.svg)]

  • 多个 Operator 之间,通过 Stream 流进行连接,Source、Transformation、Sink之间就形成了一个有向非闭环的 Dataflow Graph(数据流图)。
2.1 并行数据流
  • Flink中的程序本质上是并行的和分布式的。在执行期间,一个流具有一个或多个流分区,并且每个运算符具有一个或多个运算符子任务。操作员子任务彼此独立,并在不同的线程中执行,并且可能在不同的机器或容器上执行。
  • 操作员子任务的数量是该特定操作员的并行性。流的并行性始终是其生产运营商的并行性。同一程序的不同运算符可能具有不同的并行度。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xsh9M2xs-1616407964665)(https:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值