flink学习(三)——flink整体架构

flink作为一个分布式计算引擎,它可以在所有主流集群资源管理器中,如Hadoop YARNApache MesosKubernetes,也可以运行在独立集群中。当然,它还提供了本地运行模式,可以供我们开发测试。

架构组成

flink集群中最重要的两个进程组件是:JobManagerTaskManager
这是典型的主从架构:一个集群中只能有一个JobManager(HA部署的除外,它会有一个leader jobmager和一个standby jobmanager),但是可以有多个TaskManager

JobManager

JobManager负责管理协调管理任务执行,主要功能如下:

  1. 调度任务执行
  2. 响应任务状态变化(任务完成,失败等)
  3. 协调checkpoints的生成(checkpoints的作用后续会讲)
  4. 失败恢复重启等等

JobManager中有三大组件:

  • ResourceManager
    ResourceManager负责资源供给和分配,它管理着task slots(flink中任务的执行单元,可以类比线程进行理解)。
  • Dispatcher
    Dispatcher提供了REST接口给客户端,用来提交任务至flink集群运行,同时也提供了webui方便用户查看job执行信息。
  • JobMaster
    JobMaster负责管理JobGraph(job执行图)的执行。多个job可以同时运行在一个flink集群上,每个job拥有自己的JobMaster

TaskManager

TaskManager执行任务,并且缓存中间状态。 TaskManager至少要有一个,最小的资源调度执行单元叫做task slot。一个TaskManagertask slot的数量意味着这个TaskManager可并发执行任务的数量。

flink job提交运行流程解析

在这里插入图片描述
在一个job的提交执行过程中,会涉及到以下几个进程:

  • Client
    Client即客户端进程用于准备jar包,提交任务执行流图到JobManager上。
  • JobManger
  • TaskManager

过程如下:

  1. Client解析程序代码,优化数据流生成JobGraph。
  2. Client将job提交至JobManager
  3. JobManager收到job后生成执行流图,并申请TaskManager资源。
  4. JobManager将任务分配到指定的TaskManager上。
  5. TaskManager启动执行任务。
  6. JobManager接收来自TaskManager的心跳信息,并随时将job状态同步给Client(如果Client没关闭的情况下)。
  7. 在任务执行过程中,JobMangager定时通知TaskManager生成checkpoint。
  8. Client可通过命令或者用户直接通过JobManager的webui控制job的取消,停止。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值