第7章 MapReduce进阶
原文地址:http://blog.csdn.net/chengyuqiang/article/details/73382034
7.2 MapReduce工作机制
本节将从作业的角度来解读一个作业时如何在MapReduce计算框架下提交、运行等。注意,在Hadoop 2.x中,MapReduce的工作机制已经被YARN的工作机制所替代。 YARN框架下的Mapreduce工作流程如下图所示:
从图中可以看出YARN运行MapReduce的过程有11个步骤,我们分别来看看:
(1) 客户端向集群提交作业,启动一个job。 (2) Job从资源管理器ResourceManager获取新的作业应用程序ID。 (3) 客户端检查作业的输出情况,计算输入分片,并将作业jar包、配置、分片信息等作业资源复制到HDFS。 (4)Job通过调用资源管理器ResourceManager的 submitApplication() 方法提交作业。 (5) ResourceManager接收到作业后,将作业请求传递给调度器。ResourceManager分配一个container,然后ResourceManager在NodeManager的管理下,在container中启动一个ApplicationMaster进程。 (6)ApplicationMaster对作业进行初始化,并保持对作业的跟踪,判断作业是否完成。 (7)ApplicationMaster根据存储在HDFS中的分片信息确定Map和Reduce的数量,获取计算出的输入分片,为每个分片创建一个map任务。并创建reduce任务。 (8)ApplicationMaster为本次作业的Map和Reduce以轮询的方式向ResourceManager申请container。master为作业向资源管理器请求一个容器来运行任务。 (9)ApplicationMaster获取到container后,与NodeManager进行通信启动container。 (10)container从HDFS中获取作业的jar包、配置和分布式缓存文件等,将任务需要的资源本地化。 (11)container启动Map或Reduce任务。