如何在 java 中通过应用 ID 获取 Spark 应用句柄

How to get Spark app handle by app ID in java

我通过 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 来解决它。这不是根本解决方案,但它是目前唯一的解决方案。