Yarn调度MapReduce

当我们执行这条命令时:hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input /output

hadoop为我们做了那些事情?

Yarn调度MapReduce程序的过程

yarn调度流程:

client端会调用resourcemanager,申请执行一个job

resourcemanager会给客户端返回一个hdfs的目录以及一个application_id号。

client端会将切片信息、job的配置信息以及jar包上传到上一步收到的hdfs目录下(三个文件分别是:job.split、job.xml、jar包)

client请求resourcemanager启动mrappmaster

resourcemanager将client请求初始化成一个task任务,放到执行队列里面(默认FIFO),当执行到这个task的时候会给该job分配资源。

resourcemanager会找空闲的nodemanager创建一个container容器,并启动mrappmaster

当mrappmaster启动之后会先将client提交hdfs的资源(job.split、job.xml、jar包)下载到本地

mrappmaster根据资源信息的情况请求resourcemanager启动maptask

resourcemanager会为上面的请求找空闲的nodemanager并创建maptask的container

mrappmaster将资源发送给各个nodemanager并且启动上面相应的maptask程序,监控maptask的运行情况(如果maptask挂掉之后,由mrappmaster去处理)。

当maptask执行完成后,mrappmaster又会向resourcemanager申请reducetask的资源

resourcemanager又会为上面的请求找空闲的nodemanager并创建reducetask的container

mrappmaster然后又启动reducetask任务,并且监控reducetask任务的执行状况。

直到mapreduce的程序执行完成

整个job运行完毕后,mrAppMaster会向RM注销自己

你可能感兴趣的:(Yarn调度MapReduce)