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 分配任务

posted @ 2021-09-12 22:30  墨梅青莲  阅读(133)  评论(0)    收藏  举报