当我们执行这条命令时: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注销自己
网友评论