gpt4 book ai didi

java - 通过java列出hadoop集群中所有yarn应用

转载 作者:可可西里 更新时间:2023-11-01 15:21:19 25 4
gpt4 key购买 nike

关于运行命令 yarn application -list 在我的 hadoop 集群上,它返回正在运行的应用程序列表。

我想使用 Java 获取此列表。

目前我正在使用 yarnClient API

    <dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-client</artifactId>
<version>2.7.0</version>
</dependency>

我的代码如下:

    YarnConfiguration conf = new YarnConfiguration();
YarnClient yarnClient = YarnClient.createYarnClient();
yarnClient.init(conf);
yarnClient.start();
List<ApplicationReport> list = yarnClient.getApplications();
System.out.print(list.size());
yarnClient.stop();

但这会在 List<ApplicationReport> list = yarnClient.getApplications() 行挂起并且不会向前移动。

最佳答案

当我的 YarnConfiguration 没有正确配置时,我的代码卡在 #getApplications() 上。默认情况下,它使用 0.0.0.0:8032 作为 Yarn 资源管理器地址。我必须用正确的地址覆盖它:

YarnConfiguration conf = new YarnConfiguration();
conf.set("yarn.resourcemanager.address", "<hostname>:<port>");
YarnClient yarnClient = YarnClient.createYarnClient();
yarnClient.init(conf);
yarnClient.start();

我用 Hadoop 2.6.0 对此进行了测试,但看起来默认值对于 2.7.0 也是相同的(参见 sources )。

关于java - 通过java列出hadoop集群中所有yarn应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52717163/

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