MRFlow - huangyuefeng/study GitHub Wiki
Yarn流程难理解 团队协作里找对照
流程拆解
上图很好,
- 1提交任务,
- 2向RM申请app-id,
- 3提交任务资源文件到HDFS,
- 4向RM提交特定app-id对应的任务资源文件路径,
- 5RM启动NM(容器),然后NM启动AM,
- 6AM做MR作业任务运行的初始化,
- 7AM获取splits(metadata),
- 8AM找RM分配实际执行任务的容器,
- 9AM在实际执行任务的容器上,启动taskJVM,
- 10该task找HDFS要实际的数据,
- 11该task跑起来了。
流程分组
前3步是预备工作,主角是RM,协调整个集群计算资源,
第4到第8是metadata,这个metadata既有存储资源,也有计算调度,主角是AM,基于特定任务的协调,
第9到第11是体力活,大量消耗集群的资源都在这。主角是MR任务本身了。这时候又离不开NM对容器里干活的任务的监督,不是嘛?
团队协作对照下
RM就跟部门总一样,NM就跟人力经理一样,至于AM当然就跟项目经理一样了,至于Task的表现就是基层员工了。