我没有太多有关非托管AM工作的信息。我只知道它的基本定义,但仍不确定他们的管理方式和管理人员?
在apache文件中也提到了(作业执行流程中的第8点)- “ 基于策略,AMRMProxy可以通过提交非托管AM并将AM心跳转发给相关的子群集来模拟其他子群集上的AM。a。联合身份验证通过AMRMProxy HA支持多种应用程序尝试。容器在主子集群中将具有不同的尝试ID,但是在次尝试中将使用相同的非托管AM。b。启用AMRMProxy HA时,UAM令牌将存储在Yarn Registry中。 ,AMRMProxy将从注册表(如果有)中获取现有的UAM令牌,并重新附加到现有的UAM。“
预先感谢您的详细解释。
答案 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