简单介绍 YARN —用于Hadoop平台的资源调度程序/集群管理器

YARN在Hadoop平台中计划和协调应用程序和任务。 当要运行的任务需要HDFS中的数据时,YARN将尝试在数据所驻留的节点上调度任务(应用数据局部性的概念)。

YARN是Hadoop的第二代数据处理平台,其第一个称为MapReduce v1或MR1。 MR1是一个用于处理Hadoop MapReduce工作负载的调度平台.MR1在处理Map and Reduce工作负载以及尽可能实现数据局部性方面非常有效。

MR1有其自身的缺点,YARN能够解决MR1平台面临的缺点。 下面将解释一些缺点。

MR1并非旨在安排和管理非MapReduce程序。 MR1提供了用于在Hadoop集群上调度映射/减少作业的严格框架,并且无法管理Hadoop项目上的其他应用程序,例如spark,impala和Tez和SQL。

不够灵活,无法使用所有未充分利用的处理资产。 MR1严格定义了用于地图的处理插槽,并减少了操作,从而导致集群中资源的未充分利用。

它对可伸缩性的实际上限。

在YARN上运行应用程序

YARN旨在在称为NodeManagers的多个工作程序守护程序或进程之间分配应用程序工作负载。

NodeManager是负责执行任务的工作程序节点或代理,它们的完整集合包括一个应用程序。

名为ResourceManager的YARN守护程序负责分配ApplicationMaster,这是用于管理应用程序状态和执行的委托过程。

此外,ResourceManager监视,管理和保留节点管理器(CPU内核和内存)中的计算资源。 计算和内存资源提供给应用程序,以在称为容器的处理单元中执行尝试的任务。

ApplicationMaster确定应用程序的容器要求,并与ResourceManager协商资源,因此命名为Yet Another Resource Negotiator或YARN。

以下是当用户使用YARN作为资源调度程序/集群管理器在Hadoop平台中提交应用程序时发生的步骤顺序。

简单介绍 YARN —用于Hadoop平台的资源调度程序/集群管理器

1.客户端/用户向YARN ResourceManager提交应用程序。

1. ResourceManager在NodeManager上指定一个ApplicationMaster,其容量足以分配此角色。

1. ApplicationMaster在NodeManager上协商任务容器(包括Application Master正在运行的NodeManager)。

一旦ResourceManager分配了容器,ApplicationMaster便将处理分派给托管应用程序任务容器的NodeManager。

4.NodeManager将其任务尝试状态和进度报告给ApplicationMaster。

5.然后,应用程序主服务器向Resourcemanager报告应用程序的状态和进度。

6,ResourceManger向客户端报告应用程序进度,状态和结果。

感谢您的阅读和时间! 祝你有美好的一天。

(本文翻译自Meenakshi Sundaram Sekar的文章《YARN — Resource scheduler/Cluster Manager for Hadoop platform — in a nutshell》,参考:https://medium.com/@
meenakshisundaramsekar/yarn-resource-scheduler-cluster-manager-for-hadoop-platform-in-a-nutshell-12bed356ac55)


分享到:


相關文章: