Mapreduce学习(二)——mr程序提交的流程+yarn框架的资源调度

上篇文章简单写了一个mr程序并且提交至咱们的集群中运行。这篇文章给大家带来mr具体的流程以及进程的变化过程

我们运行sh.start-all.sh 时进程会出现 

Mapreduce学习(二)——mr程序提交的流程+yarn框架的资源调度_第1张图片

其中DataNode、NameNode、SecondaryNameNode属于HDFS的进程用于管理文件存储

ResourceManager(下面称RM)和NodeManager(下面称NM)属于yarn框架的进程

一、提交job

1)运行job的jar文件:hadoop jar xxx.xx.xx.WordCountRunner

这个main方法中最后一步提交job至集群:job.waitForCompletion()方法这个时候进程会出现一个RunJar的进程

 Mapreduce学习(二)——mr程序提交的流程+yarn框架的资源调度_第2张图片

2)RunJar向RM申请执行一个job,RM会返回job相关资源以及jobID

3)RunJar会将这些资源提交至HDFS并且将提交结果信息返回RM

4)RM将job添加至job队列中

二、初始化

1)RM初始化job任务

2)NM从RM领取job

3)NM分配资源容器(包括IO资源、磁盘资源、网络资源、内存资源等等)

三、mapreduce

1)RM在某个NM节点上启动MRAppMaster(mr主要进程)

Mapreduce学习(二)——mr程序提交的流程+yarn框架的资源调度_第3张图片

2)master向RM注册job

3)master给其他NM上分配MapTask从而产生yarnChild(进行map计算)

Mapreduce学习(二)——mr程序提交的流程+yarn框架的资源调度_第4张图片

4)map计算结束之后将结果给reduce的NM节点进行分析整合

5)将结果写入HDFS

6)master向RM注销自己结束进程

下一篇文章(周日发布)将会带来如何在本地DEBUG 调试Mapreduce程序

 

本人QQ/Wechat:806751350

github地址:https://github.com/linminlm

你可能感兴趣的:(hadoop从0开始)