Flink源计划——TaskManager

目录

1.TaskManager是什么?有什么作用?

2.TM对外提供的服务有什么?

3.TM的启动和停止流程是怎样的?

4.TM是如何管理slot资源的?

本文章以问题出发,希望能先对这些问题有些思考,在遇到不懂的之后再阅读完本文章能有所收获

 

1.TaskManager是什么?有什么作用?

(1)TaskManager是什么?
TaskManager是flink的worker节点,它负责具体任务的运行
(2)有什么作用?
①管理本地slot资源,并向JobManager提供本地资源相关信息
②运行task,实时监控task态并上报JobManager

 

2.TM对外提供的服务有什么?

(1)对外暴露的主要接口

主要功能:
①slot资源管理
requestSlot():RM向TM请求申请slot资源
freeSlot():RM向TM请求释放slot资源

②task运行、监控
submitTask():提交任务,启动用户的任务代码
cancelTask():取消任务
requestStackTraceSample():请求task在执行过程的一个stack trace抽样,用于backpress
updatePartitions():更新这个task对应的parition信息
releaseParition():释放这个job的所有中间结果

③checkpoint处理
triggerCheckpoint():Checkpoint Coordinator通知触发checkpoint(一阶段)
confirmCheckpoint():Checkpoint Coordinator通知task这个task的checkpoint完成了(二阶段)

④其他(建立连接)
heartbeatFromJobManager():处理JM的心跳请求
heartbeatFromResourceManager():处理RM的心跳请求
disconnectJobMnager()
disconnectResourceManager()
canBeReleased()

(2)相关组件

TaskSlotTable:管理taskslot的容器

 

3.TM的启动和停止流程是怎样的?

(1)启动(此处以yarn的TM启动为例)
①TaskManager的启动
... (ResourceManager申请到container后开始启动container)
NMClientAsync#startContainerAsync
(一系列远程调用,最终由NodeManager去启动容器)
->YarnTaskExecutorRunner#start
-->TaskExecutor#start
(rpc服务启动等一系列操作)
--->TaskExecutor#onStart
---->TaskExecutor#startTaskExecutorServices
----->ZookeeperLeaderRetrievalService#start *** 启动ha服务
----->TaskSlotTableImpl#start  *** 启动taskslot的管理容器
----->JobLeaderService#start  *** 启动jobLeader联系器,能时刻和JobManager的leader保持联系

②Task的启动
...(JobManager申请到资源后开始部署)
RpcTaskManagerGateway#submitTask
->TaskExecutor#submitTask  *** 校验jobmaster、taskslot、JobID等一系列东西, 恢复checkpoint等东西
-->Task#startTaskThread
--->Task#run *** 在新线程中启动该任务
---->Task#doRun
----->AbstartInvokable#invoke  *** 运行用户的任务代码
 

(2)停止

 

4.TM是如何管理资源的?

(1)TaskSlotTable?

通过TaskSlotTable实现对资源的管理

(2)资源的申请和释放流程?

①申请资源流程
TaskExecutor#requestSlot
->TaskSlotTable#allocateSlot
-->TaskSlot#allocate
②释放资源流程
TaskExecutor#freeSlot
->

(3)原理?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值