gpt4 book ai didi

java - 如何使用主类和用户获取Spark ApplicationID

转载 作者:行者123 更新时间:2023-11-30 01:53:32 26 4
gpt4 key购买 nike

我正在将 Hadoop 2.0 与 Cloudera 结合使用,并尝试使用 Java 程序来检查特定 Spark applicationID 是否正在运行并采取进一步的步骤。

我有触发特定 Spark 应用程序的主类和用户(帐户)信息。

我知道下面的内容,但是有没有任何 Java API 可以帮助使用主类名和用户名进行解析和匹配?

yarn application -list

有什么方法可以通过使用另一个Java程序中的主类和用户信息来获取正在运行的spark应用程序的applicationID吗?

[编辑] 一种方法是发出以下命令:

yarn application -list -appStates RUNNING | grep $application_name | grep $user | cut -f 1

如果有任何可以简化的Java API,请分享。

[编辑]上面的命令很好,但是我尝试使用 YarnClient 如下:

公共(public)类SomeCheck{

    public boolean run(String account, String appName) throws YarnException, IOException {




SparkContext sc = new SparkContext(new SparkConf().setMaster("yarn").setAppName("SomeCheck"));
YarnConfiguration conf = new YarnConfiguration(SparkHadoopUtil.get().newConfiguration(sc.getConf()));

YarnClient yarnClient = YarnClient.createYarnClient();
yarnClient.init(conf);
yarnClient.start();
EnumSet<YarnApplicationState> states =
EnumSet.of(YarnApplicationState.ACCEPTED, YarnApplicationState.RUNNING);

List<ApplicationReport> applications = yarnClient.getApplications(states);


for (ApplicationReport application : applications) {
if ((application.getUser() == account) & (application.getName() == appName)) return true;
}

return false;

}

}

指向 SparkContext sc = new SparkContext(new SparkConf().setMaster("yarn").setAppName("SomeCheck")); 失败

错误:

 ERROR spark.SparkContext: Error initializing SparkContext.
com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka.version'

代码中有什么不正确的地方吗?

最佳答案

您可以在当前 Spark 应用程序代码本身中获取应用程序 ID。

这里是示例(Scala)代码片段 java 也有相同的 api。

// create spark configuration
SparkConf conf = new SparkConf().setMaster("local");
conf.set("spark.app.name", "test");

// create a spark context
SparkContext sc = new SparkContext(conf);

// get the application id
String appId = sc.applicationId();

// print the application id
System.out.println("Application id: " + appId);

// stop the spark context
sc.stop();

请尝试这个。

关于java - 如何使用主类和用户获取Spark ApplicationID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55219085/

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