我正在努力了解新api的实际用途,通过互联网阅读,我发现了对我正在处理的相同问题的不同答案。
我想知道答案的问题是:
1) 哪个mrv2/yarn守护进程负责启动应用程序容器和监视应用程序资源使用情况。
2) mrv2/yarn旨在解决哪两个问题?
我将通过指定我搜索的资源和实际数据,努力使这篇文章对其他读者具有教育意义和建设性,所以我希望它看起来不会像我提供了太多的信息,而我可以只问问题,缩短我的文章。
对于第一个问题,阅读文档,我可以找到三个主要的资源:
来自hadoop文档:
applicationmaster<-->nodemanager启动容器。通过使用nmclientasync对象与NodeManager通信,通过nmclientasync.callbackhandler处理容器事件
applicationmaster与yarn cluster通信,并处理应用程序执行。它以异步方式执行操作。在应用程序启动期间,applicationmaster的主要任务是:
a) 与resourcemanager沟通,协商和分配未来容器的资源,以及
b) 在容器分配之后,与节点管理器(nms)通信以在其上启动应用程序容器。
来自hortonworks文档
实际上,applicationmaster是一个特定于框架的库的示例,负责与resourcemanager协商资源,并与nodemanager协作执行和监视容器及其资源消耗。它负责与resourcemanager协商合适的资源容器,跟踪它们的状态并监视进度。
来自cloudera文档:
mrv2守护程序-
resourcemanager—每个群集一个– 启动applicationmasters,在从属节点上分配资源
applicationmaster–每个作业一个- 请求资源、管理单个Map并减少任务
nodemanager–每个从属节点一个– 管理各个从属节点上的资源
jobhistory–每个群集一个- 归档作业的度量和元数据
回到这个问题(哪个守护进程负责启动应用程序容器和监视应用程序资源使用情况),我问自己:
是节点经理吗?是应用程序管理员吗?
据我所知,应用程序管理员是让节点管理员真正完成工作的人,所以这就像问谁负责从地上举起一个盒子,是那些实际举起心灵的手,控制着身体,让他们举起。。。
我想这是个棘手的问题,但必须只有一个答案。
对于第二个问题,在线阅读,我可以从许多资源中找到不同的答案,从而产生困惑,但我的主要来源是:
来自cloudera文档:
mapreduce v2(“mrv2”)– 建立在Yarn之上(又一个资源谈判者)
–使用resourcemanager/nodemanager体系结构
– 提高集群的可扩展性
–节点资源可用于任何类型的任务
– 提高群集利用率
–支持非mr/mr工作
回到问题上来(mrv2/yarn设计用来解决哪两个问题?),我知道mrv2做了一些更改,比如防止jobtracker上的资源压力(在mrv1中,集群中的最大节点数可能在4000个左右,而在mrv2中,它是这个数量的2倍多),我也知道它提供了运行mapreduce以外的框架的能力,比如mpi。
根据文件:
应用程序主机提供了传统resourcemanager的许多功能,因此整个系统可以更显著地扩展。在测试中,我们已经成功地模拟了由现代硬件组成的10000个节点集群,没有出现重大问题。
以及:
将所有特定于应用程序框架的代码移到applicationmaster中可以概括系统,这样我们现在就可以支持多种框架,如mapreduce、mpi和图形处理。
但我也认为它处理了namenode是单点故障的事实,在新版本中,通过高可用性模式存在备用namenode(我可能会混淆新旧api的特性,以及mrv1和mrv2的特性,这可能是我提出问题的原因):
在hadoop2.0.0之前,namenode是hdfs集群中的单点故障(spof)。每个集群都有一个namenode,如果该计算机或进程不可用,则整个集群将不可用,直到namenode重新启动或在单独的计算机上启动。
因此,如果您必须从3个问题中选择2个,那么哪一个是mrv2/yarn要解决的两个问题?
-求职者面临的资源压力
-能够运行mapreduce以外的框架,如mpi。
-namenode中的单点故障。
提前谢谢!d
3条答案
按热度按时间vmpqdwk31#
哪个mrv2/yarn守护进程负责启动应用程序容器和监视应用程序资源使用情况。
resourcemanager(rm)负责为特定作业启动applicationmaster(am),一旦启动了am,am就负责协商、分配和监视作业资源(容器)。
我建议您阅读hadoop权威指南ch6中的mapreduce作业剖析,以深入解释如何在mr1和mr2中分配作业资源。
mrv2/yarn旨在解决哪两个问题?
yarn尝试将mr1中jobtracker的功能(这是扩展的瓶颈)分离到有自己的抽象:
群集资源管理-资源管理器
应用程序生命周期管理-特定应用程序/作业的应用程序主程序
因此,如果您必须从3个问题中选择2个,那么哪一个是mrv2/yarn要解决的两个问题?
-求职者面临的资源压力
-能够运行mapreduce以外的框架,如mpi。
-namenode中的单点故障。
从你3个答案中的2个,我会选择1和2。
olmpazwi2#
只是为了澄清上面的“applicationmaster容器是由resourcemanager启动的”意思——resourcemanager指示nodemanager启动应用程序主容器。applicationmaster容器的实际启动也由nodemanager完成。
gz5pxeao3#
根据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是一种管理主机上的资源和部署的服务。它负责发射集装箱,每个集装箱都可以放置Map或减少任务。
因此,nodemanager为mapred任务启动容器。
不过,applicationmaster容器是由resourcemanager启动的。