MapReduce在yarn中的执行过程

本文详细介绍了YARN作为资源管理系统下MapReduce的执行过程。首先,客户端提交应用给ResourceManager,接着ResourceManager在NodeManager上分配Container启动ApplicationMaster。ApplicationMaster负责任务调度,向ResourceManager申请资源并监控task执行。当任务完成后,ApplicationMaster注销并停止应用。

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

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

1.概念名词简介

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

这里有几点需要注意:
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、付费专栏及课程。

余额充值