什么是非托管应用程序主控及其在纱线联合程序hadoop中的作用?

时间:2018-09-08 10:55:52

标签: yarn resource-management hadoop3

我没有太多有关非托管AM工作的信息。我只知道它的基本定义,但仍不确定他们的管理方式和管理人员?

在apache文件中也提到了(作业执行流程中的第8点)- “ 基于策略,AMRMProxy可以通过提交非托管AM并将AM心跳转发给相关的子群集来模拟其他子群集上的AM。a。联合身份验证通过AMRMProxy HA支持多种应用程序尝试。容器在主子集群中将具有不同的尝试ID,但是在次尝试中将使用相同的非托管AM。b。启用AMRMProxy HA时,UAM令牌将存储在Yarn Registry中。 ,AMRMProxy将从注册表(如果有)中获取现有的UAM令牌,并重新附加到现有的UAM。

预先感谢您的详细解释。

1 个答案:

答案 0 :(得分:0)

UAM是在https://issues.apache.org/jira/browse/YARN-420中引入的。最初的目的是

  

通过允许   AM由客户独立启动,而无需   R M。这些AM将在可以与之通信的网关计算机上启动   集群。这将打开新的用例,例如以下

     

1)易于调试AM,尤其是在初始开发期间。有   在任意群集节点上启动AM使其难以查看   记录或将调试器附加到AM。如果可以在本地启动   那么这些任务会更容易。

     

2)运行需要特殊的AM   特权可能在由   NodeManager

现在,UAM在纱线联盟的设计中也起着重要作用。用您引用的方式。

  

AMRMProxy可以通过提交以下内容来模拟其他子集群上的AM   非托管AM,并将AM心跳转发到相关   子集群。

这个想法很简单。在联合身份验证中,在提交应用程序后(在主子群集中)仅创建一个“真实” AM。但是,为了在其他(辅助)子集群中分配任务容器,应用程序需要辅助子集群中的AM与它们的RM通信。纱联盟通过在子集群中注册UAM来解决此问题,该子集群的工作只是转发allocate心跳。

您可以看一下代码

FederationInterceptor
    sendRequestsToResourceManagers()

UnmanagedAMPoolManager
UnmanagedApplicationManager