Flink执行流程

1、flink关键字对比spark

flink spark
operator RDD
operator chain stage
data flow DAG
one to one 窄依赖
redistribute 宽依赖
subtask task
task taskset
partition partition
Parallelism Parallelism

2、任务调度流程

  • client向HDFS提交flink的jar包和相关配置
  • 然后向resourceManager提交任务,resourceManager分配Container资源并通知相应的NodeManager启动ApplicationMaster
  • ApplicationMaster启动后加载flink的jar包和相关配置,同时启动jobManager
  • ApplicationMaster向resourceManager申请资源启动taskManager
  • resourceManager为taskManager分配资源后,由ApplicationMaster在对应的NodeManager上启动taskManager
  • taskManager启动完成后,加载flink的jar包和相关配置
  • taskManager向jobManager发送心跳包汇报运行状况,等待jobManager分配运行任务

3、Flink的执行图

  • Flink会根据代码执行流程生成DAG数据流图,生成顺序为:streamGraph、jobGraph、executionGraph、物理执行图
    • 1、streamGraph:程序原始执行流程图,也就是算子的依赖关系,在client上生成
    • 2、jobGraph:对程序执行流程图进行一定程度的优化,如将one to one的operator生成operator chain,在client上生成
    • 3、executionGraph:对程序中设置的并行度和提交的资源进行并行规划,在jobManager上生成
    • 4、物理执行图:将executionGraph的并行计划落实到taskManager上,将subTask落实到具体的taskSlot上

4、Flink运行的组件

Flink执行流程_第1张图片

你可能感兴趣的:(Flink,flink)