YARN distributedshell AM 源码流程查看2

2 篇文章 0 订阅
2 篇文章 0 订阅

前言

  1.此博客是对YARN distributedshell AM 源码流程查看1 进一步优化,上一篇过多的是源码,此篇是时序图,看起来流程更直观

  2. hadoop版本:3.1.1

  3.我文字表达能力不强,所以才画图的。画图不易请多多支持

正文

 1.从main函数开始

  下图中第7步为向ack 添加请求,ack 数据类型是Set

distributedshell AM流程序列图1
distributedshell AM流程序列图1

 

2.第二张序列图-处理ack

  承接第一张序列图第7步, HeartbeatThread是一个内部线程,run方法循环调用allocate,收到分配返回allocateResponse信息存储到队列responseQueue

 

distributedshell AM流程序列图2
distributedshell AM流程序列图2

3.第三张序列图-后台线程不停消费responseQueue

消费responseQueue,此流程图对应上一篇 2.4.3 步,在下图中1.1 步处,对应上一篇 2.7 步,会向队列events存入大量StartContainerEvent

distributedshell AM流程序列图3
distributedshell AM流程序列图3

 

4.第四张序列图-消费events

匿名线程循环消费events,对应上一篇 2.8 步,下图第六步(上一篇 2.9步)进入状态机

distributedshell AM流程序列图4
distributedshell AM流程序列图4

 

5.第五张序列图-状态机处理逻辑

我在下图只列一个判定参数,其实状态机如何处理是由三个参数解决定,有很多种处理场景,在此只列一个参数,两个场景。关于状态机我会在以后发一遍不可解释流程和原理。

下图1.2.1向events.put(new ContainerEvent) ,事件类型为:QUERY_CONTAINER。又进入第四步流程

distributedshell AM流程序列图5
distributedshell AM流程序列图5

我已经通过时序图和源码的方式把AM启动,Container申请,分配,启动,关闭流程讲完啦。谢谢大家观看

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值