我试图将我的头脑包含在新API的实际目的上,并通过互联网阅读,我找到了与我正在处理的相同问题的不同答案.
我想知道答案的问题是:
1)哪个MRv2/YARN守护程序是负责启动应用程序容器和监视应用程序资源使用的守护程序.
2)MRv2/YARN旨在解决哪两个问题?
我将尝试通过指定搜索中的资源和实际数据,使这个线程对其他读者具有教育性和建设性,所以我希望看起来我提供的信息太多,而我可以提出问题并发布帖子短.
对于第一个问题,阅读文档,我可以找到3个主要资源:
从Hadoop文档:
ApplicationMaster < - > NodeManager启动容器.使用NMClientAsync对象与NodeManagers通信,通过NMClientAsync.CallbackHandler处理容器事件
ApplicationMaster与YARN集群通信,并处理应用程序执行.它以异步方式执行操作.在应用程序启动期间,ApplicationMaster的主要任务是:
a)与ResourceManager通信,为将来的容器协商和分配资源,以及
b)在容器分配之后,通信YARN NodeManagers(NM)以在它们上启动应用程序容器.
来自Hortonworks文档
ApplicationMaster实际上是一个特定于框架的库的实例,负责协商来自ResourceManager的资源,并与NodeManager一起执行和监视容器及其资源消耗.它负责从ResourceManager协商适当的资源容器,跟踪其状态并监视进度.
来自Cloudera文档:
MRv2守护进程 -
ResourceManager - 每个群集一个 - 启动ApplicationMasters,在从属节点上分配资源
ApplicationMaster - 每个作业一个 - 请求资源,管理单个Map和Reduce任务
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的大部分功能,因此整个系统可以进行更大规模的扩展.在测试中,我们已经成功地模拟了由现代硬件组成的10,000个节点集群而没有重大问题.
和:
将所有特定于应用程序框架的代码移动到ApplicationMaster中会对系统进行概括,以便我们现在可以支持多个框架,例如MapReduce,MPI和Graph Processing.
但我也认为它处理了NameNode是单点故障的事实,而在新版本中,通过高可用性模式存在Standby NameNode(我可能会混淆旧API和新API的功能,具有以下功能: MRv1与MRv2相关,这可能是我的问题的原因):
在Hadoop 2.0.0之前,NameNode是HDFS集群中的单点故障(SPOF).每个群集都有一个NameNode,如果该机器或进程变得不可用,整个群集将无法使用,直到NameNode重新启动或在单独的计算机上启动.
那么,如果你必须选择3中的2个,哪个是2个作为MRv2/YARN旨在解决的两个问题?
- JobTracker上的资源压力
- 运行MapReduce以外的框架的能力,例如MPI.
- NameNode中的单点故障.
先感谢您!d
哪个MRv2/YARN守护程序负责启动应用程序容器和监视应用程序资源使用情况.
ResourceManager(RM)负责为特定作业启动ApplicationMaster(AM),AM已启动AM负责协商,分配和监视作业资源(容器).
我建议你读的MapReduce工作的剖析,从Hadoop的权威指南上的作业资源如何得到两个MR1和MR2分配CH6,进行深入的解释.
MRv2/YARN旨在解决哪两个问题?
YARN尝试将MR1中的JobTracker功能(这是缩放的瓶颈)分离到自己的抽象:
那么,如果你必须选择3中的2个,哪个是2个作为MRv2/YARN旨在解决的两个问题?
- JobTracker上的资源压力
- 运行MapReduce以外的框架的能力,例如MPI.
- NameNode中的单点故障.
从3个答案中的2个中我会选择1和2.