MRFlow - huangyuefeng/study GitHub Wiki

Yarn流程难理解 团队协作里找对照

src_url

MRFlow

流程拆解

上图很好,

  • 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的表现就是基层员工了。