Hadoop(4):MapReduce on Yarn工作流程

一、关键概念

1.Client客户端:提交mapreduce任务的电脑。

2.Resource manager:用于管理整个集群资源调度分配,包含Applications manager和Resource Scheduler。

(1)Applications manager:管理每个提交任务,创建每个任务的Application master。

(2)Resource Schedule:用于管理每个任务的资源分配,会分配给每个任务相应资源(container)

3.ApplicationMaster:负责客户端提交Job调度的进程,每个job对应一个applicationMaster。

备注:maptask和reducetask默认资源是1G内存和1核CPU

4.Node manager:单个节点的资源管理器。包含计算资源Container,是每个map或者reduce任务运行的位置。

二、工作流程

1.框架图

Hadoop(4):MapReduce on Yarn工作流程

2.提交流程

(1)Clinet向RM申请资源,RM上有所有NM的节点资源信息,RM将资源信息(Node Manager的hostname、以及分配的内存和CPU大小)发送给Client

(2)Client根据请求到资源信息发送到对应的Node Manager,Node Manager中产生Container对象,然后在Container对象中调用相关代码,启动Application Master 

(3)Application Master 开始获取客户端提交job的相关设置信息。例如,获得得到map task数量(由InputFormat的getSplits方法决定)和reduce task数量(由参数mapreduce.job.reduces影响)

(4)Application Master向RM申请Map Task运行的资源(一个Map Task或者Reduce Task就需要申请一个container),RM将分配的资源发送给Application Master

(5)和(6)Application Master远程调用NM的相关方法启动对应的Container,并在Container中启动对应的Map Task

(7)包含两种任务:

        -》map Task:当一个Map Task执行完成后,会通知AM进程,当前Map Task执行完成;

        -》reduce Task:当总Map Task中有5%执行完成,AM向RM申请reduce task运行资源(一个task需要一个container),RM将资源信息发送给AM,AM在对应的NM节点启动对应的Container,并在Container中运行对应的reduce task任务

(8)当reduce task任务执行完成后,会通知Application Master进程,以及进一步通知Applications Manager。当所有的reduce task执行完成,AM通知client表示程序执行完成.