apache-spark - 如何在 Java 中通过应用程序 ID 获取 Spark 应用程序句柄

标签 apache-spark hadoop-yarn

我通过 spark launcher 提交 spark 申请。我不会等到应用程序完成,但需要让路来杀死应用程序。

SparkAppHandle spark = new SparkLauncher()
            .setAppResource("/usr/local/myapp.jar")
            .setMainClass("com.myapp.app")
            .setMaster("yarn")
            .setDeployMode( "cluster")
            .startApplication( this);

并获取应用程序 ID。

String id = spark.getAppId(); // how to wait untill not UNKONWN?
SparkAppHandle curApp = ???.getHandleByID( id); // how to get?

如何通过App ID获取SparkAppHnadle,调用destory()方法。

最佳答案

没有办法通过它的其他信息得到SparkAppHandle。我通过制作以 appID 或唯一字符串作为键并以 SparkAppHandle 作为值的 hashmap 来解决它。这不是根本解决方案,但它是目前唯一的解决方案。

关于apache-spark - 如何在 Java 中通过应用程序 ID 获取 Spark 应用程序句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43383178/

相关文章:

apache-spark - Spark 上下文 : Error initializing SparkContext While Running Spark Job

dataframe - 如何使用 Spark DataFrames 查询 JSON 数据列?

hadoop - 在 Yarn 上运行时,容器/资源分配在 Hadoop 和 Spark 中意味着什么?

java - 在集群中启动 MapReduce 作业失败,退出代码为 : -1000 and job. jar 不存在

hadoop - yarn : what subsystem connecting to port 44874

java - 在 Spark 2.2.0 中设置 DEFAULT_MAX_TO_STRING_FIELDS

apache-spark - 如何在点语法中转义点,例如在 get_json_object 中?

apache-spark - 尝试从 Spark 访问 S3 时出现 400 错误请求

scala - YARN : how to monitor stages progress programatically? 上的 Spark 2.3.1