在yarn应用程序中获取hadoop集群节点列表

ygya80vv  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(392)

我正在编写yarn应用程序,它必须在每个集群节点上运行一些java代码。我开始编写yarn应用程序,然后在示例中遇到太多空格后,使用这个github项目作为我的应用程序的基础。
在深入研究了exapmle的applicationmaster用法之后,我发现我可以使用特定的org.apache.hadoop.yarn.client.api.containerrequest的构造函数来获取特定主机上的应用程序容器,但是我需要集群节点列表来请求每台机器上的容器。
通过这个问题搜索之后,我发现解析yarn-site.xml不是获取集群机器url的正确方法,但是可以从org.apache.hadoop.yarn.client.api.yarnclient.getclusternodelabels()获得此信息,但是此方法返回的set包含0条记录。
我是舒尔,我的jar所在的集群由几个节点组成,所以我不明白,我做错了什么?
p、 我使用远程调试,运行时,我的jar。

piwo6bdm

piwo6bdm1#

正确的方法是使用yanclient#getnodereports。要获得完整的列表,只需提供所有可能的状态作为参数:

yarnClient.getNodeReports(NodeState.values())

相关问题