【flink学习笔记】系统架构

文章目录

    • 1.作业管理器 jobmanager
      • jobmaster
      • resoucemanager
      • dispatcher(不必要)
    • 2.task manager
    • 3.作业提交流程
    • 4.算子链
    • 5. 并行度
    • 6.执行图
    • 7.任务&任务槽
    • 8.思考
      • 8.1 flink程序如何得到job
      • 8.2 流处理程序包含多少job
      • 8.3 执行job需要多少slot
    • 9.任务调度

1.作业管理器 jobmanager

jobmaster

1.作业提交时,接收要执行的应用:jar包、数据流图、作业图
2. jobmaster把作业图转换成为物理层面的数据流图:执行图,包含了所有可并发的任务
3. jobmaster向resource manager发出请求,申请必要资源,4. 获得资源后,执行图分发到taskmanager上
运行中,chekpoints协调

resoucemanager

资源分配,资源:task slots
每一个任务都需要分配到一个slot上执行

dispatcher(不必要)

分发器,提供rest接口,启动web UI

2.task manager

  1. 多个
  2. 每个taskmanager包含了一定数量的任务槽,任务槽的数量决定了taskmanager能够并行的任务数量
  3. 执行中,taskmanager可以与其他运行相同app的taskmanager进行交换数据

3.作业提交流程

【flink学习笔记】系统架构_第1张图片

yarn会话模式作业提交流程
【flink学习笔记】系统架构_第2张图片

4.算子链

5. 并行度

把算子在不同的机器上复制多份,一个特定算子的子任务的个数称之为其并行度(paralleism)

  • 任务并行
  • 数据并行☆

6.执行图

7.任务&任务槽

8.思考

8.1 flink程序如何得到job

程序&数据流 dataflow
flink程序包含三部分:
source(输入) + transformation(各种算子:flatmap、sum) +	sink(输出)
dataflow是以一个或多个source开始,一个或多个sink结束,类似任意的有向无环图

8.2 流处理程序包含多少job

8.3 执行job需要多少slot

9.任务调度

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