Flink 运行架构
Flink 在运行时包含四个组件:
JobManager(作业管理器):
控制一个应用程序运行的主进程。负责向 ResourceManager 申请资源,负责所有需要中央协调的操作(比如说 检查点的协调)
ResourceManager(资源管理器):
负责管理 TaskManager 的 slots(插槽)资源。
TaskManager(任务管理器):
Flink 中的工作进程,每一个 TaskManager 包含一定数量的 slots (插槽)。TaskManager 会向 ResourceManager 注册自己的 slots,收到 ResourceManager 的指令后,会将一个或多个 slots 提供给 JobManager 用,然后 JobManager 向 slots 分配 task 执行。
Dispatcher(分发器):
为应用提供 REST 接口,可以跨作业运行。当一个应用程序启动时,Dispatcher 将应用交给一个 JobManager。
运行流程:
1、应用提交程序
2、Dispatcher 启动并将应用提交给 JobManager
3、JobManager 向 ResourceManager 请求 slots
4、TaskManager 启动,并向 ResourceManager 注册自己的 slots
5、ResourceManager 向 TaskManager 发起提供 slots 的请求
6、TaskManager 给 JobManager 提供 slots
7、JobManager 在 slots 上提交任务并运行 (期间 TaskManager 进行数据的交换)

Yarn 部署后运行流程:
1、客户端上传 Flink 的 jar 包和配置到 HDFS上
2、客户端向 ResourceManager 提交 Job
3、ResourceManager 在合适的 NodeManager 上启动 ApplicationMaster
4、ApplicationMaster 启动后加载 Flink 的 Jar 包和配置构建环境,启动JobManager
5、ApplicationMaster 向 ResourceManager 申请资源启动 TaskManager
6、ResourceManager 分配 Container 资源后,ApplicationMaster 通知资源所在节点的 NodeManager 启动 TaskManager
7、TaskManager 启动后向 JobManager 发送心跳包,并等待 JobManager 分配任务


浙公网安备 33010602011771号