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.框架图
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表示程序执行完成.