gpt4 book ai didi

hadoop - 在 YARN 集群的特定节点上运行我自己的 application master

转载 作者:可可西里 更新时间:2023-11-01 14:53:24 26 4
gpt4 key购买 nike

首先,我使用的是 Hadoop-2.6.0。我想在 YARN 集群中的特定节点上启动我自己的 app master,以便在预定的 IP 地址和端口上打开服务器。为此,我编写了一个驱动程序,在其中创建了一个 ResourceRequest 对象并调用了 setResourceName 方法来设置主机名,并将其附加到 ApplicationSubmissionContext 对象通过调用 setAMContainerResourceRequest 方法。

我尝试了几次,但无法在特定节点上启动 App Master。搜索代码后,我发现 RMAppAttemptImpl 使我在 ResourceRequest 中设置的内容无效,如下所示:

    // Currently, following fields are all hard code,                                                                                                                                                                                                                                                                   
// TODO: change these fields when we want to support
// priority/resource-name/relax-locality specification for AM containers
// allocation.
appAttempt.amReq.setNumContainers(1);
appAttempt.amReq.setPriority(AM_CONTAINER_PRIORITY);
appAttempt.amReq.setResourceName(ResourceRequest.ANY);
appAttempt.amReq.setRelaxLocality(true);

在 Hadoop-2.6.0 的特定节点上,是否有另一种方法可以为 application master 启动容器?

最佳答案

ApplicationSubmissionContext提供一个函数setAMContainerResourceRequest你可以在哪里传递 ResourceRequest对象,在 ResourceRequest 对象中,您可以将 RelaxLocality 标志设置为“false”,它告诉 ResourceManager 应用程序希望局部性是松散的(即允许 fall-through 到 rack 或任何)还是严格的(即指定对资源分配的硬约束)。然后使用 setResourceName 设置主机名.希望对您有所帮助!

关于hadoop - 在 YARN 集群的特定节点上运行我自己的 application master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29302659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com