一篇文章让你轻轻松松弄懂Hadoop YARN

提到Apache Hadoop,通常大多数人联想到的是HDFS和MapReduce,而容易忽略非常重要的YARN,其实YARN是一个极为重要的Hadoop组件。

 

本篇文章,小编将带大家了解YARN究竟是什么!

 

YARN是Hadoop 2.x版本引入的资源调度平台,目的为了提高集群环境下资源的利用率。

 

可以把YARN理解为一个分布式的操作系统平台,而MapReduce运算程序相当于运行在操作系统之上的应用程序,YARN为这类程序提供运算所需的资源如内存和CPU。

除了MapReduce运算程序之外,YARN上还可以运行各种类型的分布式运算程序,如Storm、Spark、Tez等等。

 

接下来,通过YARN基本结构图进行进一步了解,如下图所示。

 

从YARN基本架构图来看,它主要由ResourceManager、NodeManager、APP

Mstr(ApplicationMaster)和Container四个组件构成,针对这四个组件的介绍如下。

 

ResourceManager

(1)处理客户端请求。

(2)负责整个集群的资源管理和分配。

(3)启动或监控APP

Mstr。

(4)监控NodeManager资源使用情况和Container的运行状态。

 

NodeManager

(1)负责本节点程序的运行,以及资源的管理和监控。

(2)向ResourceManager汇报本节点资源的使用情况和Container的运行状态。

(3)处理来自ApplicationMaster命令,包括Container启动、停止等请求。

 

APP Mstr

(1)负责与ResourceManager协调为应用程序申请资源(Container)并分配给内部的任务。

(2)负责与NodeManager通信以启动或停止任务。

(3)监控任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。

 

Container

Container是YARN中的资源抽象,封装了从节点上的多维度资源,如内存、CPU、磁盘、网络等。

认识了YARN的各个组件之后,我们将各个组件串联起来,了解YARN各组件间是如何协调工作的。

步骤1:用户向Yarn提交应用程序,其中包括用户程序、相关文件、启动ApplicationMaster命令、ApplicationMaster程序等。

步骤2:ResourceManager为该应用程序分配第一个Container,并且与Container所在的NodeManager通信,并且要求该NodeManager在这个Container中启动应用程序对应的ApplicationMaster。

步骤3:ApplicationMaster首先会向ResourceManager注册,这样用户才可以直接通过ResourceManager查看到应用程序的运行状态,然后它为准备为该应用程序的各个任务申请资源,并监控它们的运行状态直到运行结束,即重复后面4~7步骤。

步骤4:ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源。

步骤5:一旦ApplicationMaster申请到资源后,便会与申请到的Container所对应的NodeManager进行通信,并且要求它在该Container中启动任务。

步骤6:任务启动。NodeManager为要启动的任务配置好运行环境,包括环境变量、JAR包、二进制程序等,并且将启动命令写在一个脚本里,通过该脚本运行任务。

步骤7:各个任务通过RPC协议向其对应的ApplicationMaster汇报自己的运行状态和进度,以让ApplicationMaster随时掌握各个任务的运行状态,从而可以再任务运行失败时重启任务。

步骤8:应用程序运行完毕后,其对应的ApplicationMaster会向ResourceManager通信,要求注销和关闭自己。

本篇文章主要介绍了Apache Hadoop的YARN是什么,针对YARN的组件及工作流程进行了讲解,希望读者可以掌握YARN的基本概念,你学会了吗?

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值