MRv2 / YARN Features



我正在努力了解新API的实际用途,通过互联网阅读,我发现了对我正在处理的相同问题的不同答案。

我想知道的问题的答案是:

1)哪个MRv2/YARN守护进程负责启动应用程序容器和监控应用程序资源使用情况

2)MRv2/YARN旨在解决哪两个问题

我会通过指定搜索中的资源和实际数据,努力让这个帖子对其他读者具有教育意义和建设性,所以我希望在我可以提问并缩短帖子的时候,看起来不会提供太多信息。

对于第一个问题,阅读文档,我可以找到3个主要的资源:

来自Hadoop文档:

ApplicationMaster&lt-->NodeManager启动容器。与NodeManager,通过使用NMClientSync对象,处理容器事件由NMClientSync.CallbackHandler

ApplicationMaster与YARN集群通信,并处理应用程序执行。它以异步方式执行操作时尚在应用程序启动期间ApplicationMaster是:

a) 与资源管理器沟通以协商和分配未来集装箱资源和

b) 在容器分配之后,与YARN NodeManager(NMs)通信以启动应用程序容器在他们身上。

来自Hortonworks文档

ApplicationMaster实际上是特定于框架的库,并负责协商资源管理器中的资源,并使用NodeManager以执行和监视容器及其资源消耗。它有责任协商适当的资源来自ResourceManager的容器,跟踪它们的状态和监测进展。

来自Cloudera文档:

MRv2守护进程-

ResourceManager—每个集群一个—启动ApplicationMasters,在从属节点上分配资源

ApplicationMaster–每个作业一个–请求资源,管理单个映射和减少任务

NodeManager–每个从属节点一个–管理单个从属节点上的资源

JobHistory–每个集群一个–归档作业的指标和元数据

回到问题(哪个守护进程负责启动应用程序容器和监控应用程序资源使用情况),我问自己:

NodeManager吗?是ApplicationMaster吗?

据我所知,ApplicationMaster是让NodeManager真正完成任务的人,所以这就像问谁负责从地上举起一个盒子,是那些真正举起思想、控制身体并让他们举起的手吗。。。

我想这是一个棘手的问题,但答案只有一个

对于第二个问题,在网上阅读,我可以从许多资源中找到不同的答案,从而造成混乱,但我的主要来源是:

来自Cloudera文档:

MapReduce v2("MRv2")–建立在YARN(然而"另一个资源NegoGator")之上

–使用ResourceManager/NodeManager体系结构

–提高集群的可扩展性

–节点资源可用于任何类型的任务

–提高集群利用率

–支持非/MR作业

回到问题(MRv2/YARN旨在解决哪两个问题?),我知道MRv2做了一些更改,比如防止JobTracker上的资源压力(在MRv1中,集群中的最大节点数可能在4000个左右,在MRv2中是这个数字的2倍多),我还知道它提供了运行MapReduce以外的框架的能力,例如MPI。

来自文档:

Application Master提供了传统的ResourceManager,以便整个系统可以扩展更引人注目的是。在测试中,我们已经成功地模拟了由现代硬件组成的10000个节点集群问题

和:

将所有应用程序框架特定的代码移动到ApplicationMaster对系统进行了概括,因此我们现在可以支持MapReduce、MPI和Graph Processing等多个框架。

但我也认为它处理了这样一个事实,即NameNode是一个单点故障,在新版本中,通过高可用性模式有备用NameNode(我可能混淆了新旧API的功能,MRv1和MRv2的功能,这可能是我的问题的原因):

Hadoop2.0.0之前,NameNode是单点故障(SPOF)。每个集群都有一个NameNode,如果该机器或进程变得不可用,集群作为一个整体在NameNode重新启动或在一台单独的机器上长大。

因此,如果您必须从3个问题中选择2个,那么MRv2/YARN设计解决的两个问题是哪一个?

-JobTracker 面临的资源压力

-能够运行MapReduce以外的框架,如MPI。

-NameNode中的单点故障。

提前谢谢!D

哪个MRv2/YARN守护进程负责启动应用程序容器和监控应用程序资源使用情况。

ResourceManager(RM)负责为特定作业启动ApplicationMaster(AM)一次,AM已启动,AM负责协商、分配和监控作业资源(容器)。

我建议您阅读Hadoop最终指南Ch6中的MapReduce作业剖析,以深入解释如何在MR1和MR2中分配作业资源。

MRv2/YARN旨在解决哪两个问题?

YARN试图将MR1中JobTracker的功能(这是扩展的瓶颈)分离为自己的抽象:

  • 群集资源管理-资源管理器
  • 应用程序生命周期管理-特定应用程序/作业的应用程序主程序

因此,如果您必须从3个问题中选择2个,那么MRv2/YARN要解决的两个问题是哪一个?

-JobTracker 面临的资源压力

-能够运行MapReduce以外的框架,如MPI。

-NameNode中的单点故障。

从你的3个答案中选择2个,我会选择1和2。

根据clouderahttp://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_mapreduce_to_yarn_migrate.html#concept_z1p_gmy_xl_unique_2

TaskTracker已被NodeManager取代,NodeManager是一种YARN服务,用于管理主机上的资源和部署它负责启动容器,每个容器可以容纳一个地图或减少任务。

因此是NodeManager为映射任务启动容器。

ApplicationMaster容器是由ResourceManager启动的。

只是为了澄清以上内容"ApplicationMaster容器由ResourceManager启动"表示--ResourceManager指示NodeManager启动应用程序主容器ApplicationMaster Container的实际启动也是由NodeManager完成的

相关内容

  • 没有找到相关文章

最新更新