什么是Unmanaged Application Master及其在纱线联合会hadoop中的作用?

问题描述 投票:0回答:1

我没有获得有关Unmanaged AM工作的更多信息。我只知道关于它的基本定义,但仍然不确定他们的管理是如何完成的以及由谁完成的?

同样在apache文档中,提到了(作业执行流程中的第8点) - “基于策略,AMRMProxy可以通过提交非托管AM以及通过将AM心跳转发到相关子网来模拟其他子集群上的AM群集.a。联合支持使用AMRMProxy HA进行多次应用程序尝试.AM容器在主子群集中具有不同的尝试ID,但是会在尝试中使用辅助中的相同非托管AM .b。启用AMRMProxy HA时,UAM令牌将存储在Yarn Registry中。在每次应用程序尝试的registerApplicationMaster调用中,AMRMProxy将从注册表中获取现有的UAM令牌(如果有的话)并重新连接到现有的UAM。

提前感谢您的详细解释。

yarn resource-management hadoop3
1个回答
0
投票

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

通过允许AM由客户端独立启动而不需要RM来增强该模型将是有用的改进。这些AM将在可以与群集通信的网关机器上启动。这将开辟新的用例,如下所示

1)AM的简易调试,特别是在初始开发期间。在任意群集节点上启动AM会使查看日志或将调试器附加到AM很困难。如果它可以在本地启动,那么这些任务将更容易。

2)运行需要特殊权限的AM,这些权限可能在NodeManager管理的计算机上不可用

现在,UAM在纱线联合会的设计中也发挥着重要作用。在你引用的方式。

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

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

你可以看看代码

FederationInterceptor
    sendRequestsToResourceManagers()

UnmanagedAMPoolManager
UnmanagedApplicationManager
© www.soinside.com 2019 - 2024. All rights reserved.