各个角色作用:
resourcemanager的作用
resourcemanager
1)接受客户端的请求 job提交
2)接受mrappmaster的请求
3)进行资源分配和调度
4)接受nodemanager 心跳
5)监控nodemanager 资源使用状况
nodemanager的作用
nodemanager:
1)接受resourcemanager 命令
2)接受mrappmaster 命令
3)向rm发送心跳
4)监控自身的资源使用状况
job的提交过程:
- 1)客户端向resourcemanager提交job请求 (hadoop jar wc.jar com.aura.cn.mapreduce.Driver /input/wordcount /output/wordcount0)
- 2)resourcemanager向客户端返回job_id及共享资源路径(HDFS:/tmp/hadoop-yarn/staging/jacob/.staging/…)
- 3)客户端将共享资源提交到hdfs上的共享资源的目录下
- 4)客户端向resourmanager响应(共享资源放置完成),并真正提交应用程序Application_id
- 5)resourcemanager会为当前的application分配节点,用于启动当前应用程序的MRAppMaster
- 6)resourcemanager会到对应的资源节点上启动MRAppMaster
- 7)MRAppMaster去共享资源路径下下载共享资源
- 8)MRAppMaster初始化当前的应用程序,生成当前application的工作簿(进度)
- 9)MRAppMaster向resourcemanager申请maptask运行需要的资源
- 10)resourcemanager向MRAppMaster返回对应的资源节点
- 11)MRAppMaster到对应的资源节点启动maptask | reducetask
- 12)maptask会到共享资源路径下下载共享资源(jar包)
- 13)maptask开始运行
- 14)maptask在运行期间向MRAppMaster汇报自己的进度和状态
- 15)MRAppMaster获取到有一个maptask运行完成之后,到对应的节点去启动reducetask任务
- 16)reducetask会到共享资源路径下下载共享资源
- 17)reducetask开始运行(shuffle过程发生在16-17步之间)
- 18)reducetask运行期间向MRAppMaster汇报自己的进度和状态
- 19)当maptask | reducetask 运行完成之后,MRAppMaster就进行资源回收
- 20)整个application运行运行完成,MRAppMaster向resourcemanager申请注销自己,并向客户端返回运行结果