MapReduce在yarn中的执行过程

本文介绍了MapReduce在YARN资源管理器中的运行机制,涵盖了YARN的关键组件如ResourceManager、NodeManager、ApplicationMaster及Container的作用,以及MapReduce任务如何在YARN环境中被提交、调度和执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在MapReduce工作原理简介中我简单的了解了MapReduce的工作原理,在这篇文章中,我们将要了解MapReduce的执行过程。我们知道从Hadoop2.X,采用的是yarn作为资源管理系统,我们将要了解MapReduce在yarn中的执行过程。同样,对于yarn,网上有很多大神的写的博客,这里我主要是结合自己的理解,对知识进行积累。

1.概念名词简介

    yarn是资源管理系统,采用的是Master/slave结构,不仅可以运行MapReduce应用,还可以运行Spark,Storm等应用,具有很好的扩展性,主要组件包ResouceManager,NodeManager,ApplicationMaster和container等。

ResourceManager              (RM)作为集群的全局资源管理器,一个集群一个,负责整个集群的资源管理和分配,监控ApplicationMaster的运行情况以及NodeManager的资源情况,想当于Master节点。
NodeManager(NM)负责集群中每个节点的资源以及使用,运行任务,相当于Slave节点。
ApplicationMaster(AM)对集群中的某个应用程序进行管理,向RM(ResourceManager)申请资源以及分配监控任务。
container资源单位,包括cpu,内存等,不同于mrv1中slot,它是动态资源,而原来是事先程序员定好的,比如某个节点的map slot和reduce slot都是固定的,影响了集群的使用。
RPC

Remote Procedure Call,yarn中各个组件间的通信采用的是rpc机制

application 我们提交给yarn需要运行的应用程序                                                                        
task为了完成application,需要完成多个任务,任务包括map task和reduce task
这里有几点需要注意:

1)RM主要对资源进行管理以及分配,不负责task,但是会监控AM的运行情况,如果AM运行失败,会重新分配container,重启AM。

2)NM负责该节点容器的资源使用情况,不监控task。

3)AM主要申请资源,然后分配任务给相应的NM,同时监控task的运行情况,如果任务失败,那么重新申请资源,在新的container中运行task

3)我们提供jar包运行MapReduce,其中应用作业的配置文件,jar包等都是通过hdfs分配到各个节点的。

2.运行过程

以下的图是结合大神的博客以及自己理解,自己画的,可能与官方文档有些出入,主要是为了便于自己的理解。


1)首先客户端提交运用程序给yarn的RM

2)RM接受到应用程序后,为其在一个NM node中分配第一个container,并于对应的NM通信,令其在container中创建该应用的AM。

3)AM创建后,马上在RM中进行注册,注册后使得RM能够监控AM的运行情况。AM开始运行应用程序,为其对应的各个task(可以理解成应用程序拆解成各个task运行)向RM申请资源container,其中map task的优先级高于reduce task。

4)申请到资源后,AM与NM通信。

5)AM让NM在container中启动对应的task,并且监控task的运行情况。

以上便是MapReduce在yarn中运行过程,当程序运行结束后,AM向RM注销自己,停止应用,同时container中task和AM都清空。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值