Yarn中ResourceManager为应用程序分配Container的流程是什么?

提问者:帅平 问题分类:大数据
Yarn中ResourceManager为应用程序分配Container的流程是什么?
1 个回答
吹南风
吹南风
阶段⼀:AM请求资源请求并领取资源的过程,这个过程是AM发送请求、RM记录请求。
1. AM通过RPC函数向RM发送资源需求信息,包括新的资源需求描述、待释放的Container列表、
请求加⼊⿊名单的节点列表、请求移除⿊名单的节点列表等
2. RM的ApplicationMasterService负责处理AM的请求。⼀旦收到请求,就通知
RMAppAttempt,更新应⽤程序执⾏进度,在AMLivenessMonitor中记录更新时间。
3. ApplicationMasterService调⽤ResourceScheduler,将AM的资源需求汇报给
ResourceScheduler。
4. ResouceScheduler⾸先读取待释放的Container列表,通知RMContainer更改状态,杀死要释
放的Container,然后将新的资源需求记录,如果资源⾜够就记录已经分配好资源。

阶段⼆:NM向RM汇报各个Container运⾏状态,如果RM发现它上⾯有空闲的资源就分配给等
待的AM。
1. NM通过RPC向RM汇报各⾃的各个Container的运⾏情况
2. RM的ResourceTrackerService负责处理来⾃NM的汇报,收到汇报后,就通知RMNode更改
Container状态,并通知ResourceScheduler。
3. ResourceScheduler收到通知后,如果有可分配的空闲资源,就将资源分配给等待资源的AM,
等待AM下次⼼跳将资源领取⾛。
发布于:10个月前 (05-22) IP属地:四川省
我来回答