无法使用SparkLauncher和SparkAppHandle杀死Spark应用

时间:2017-10-07 08:47:06

标签: apache-spark spark-launcher

根据this documentation,使用SparkLauncher和方法startApplication启动/提交的Spark应用程序可以使用返回的SparkAppHandle和kill()方法终止,因为它&# 39;儿童过程我尝试将它与CountDownLatch和计时器结合使用,但它对我不起作用。 带有SparkLauncher的Java应用程序在20分钟后完成,但之后仍然在我的YARN集群上运行了spark应用程序。

我使用以下代码:

`
// launcher config...
CountDownLatch countDownLatch;
Listener handleListeners = new Listener() {
    @Override
    public void stateChanged(SparkAppHandle handle) {
        if (handle.getState().isFinal()) {
            countDownLatch.countDown();
        }

        @Override
        public void infoChanged(SparkAppHandle handle) {}
    };

countDownLatch = new CountDownLatch(1);
SparkAppHandle handle = launcher.startApplication(handleListeners);
boolean regularExit = countDownLatch.await(20, TimeUnit.MINUTES);
if (!regularExit)
    handle.kill();                                                                          

` 我还在想,当kill-command已经在群集上运行时,kill命令才会起作用。

(拜托,有人可以修复代码片段吗?我没有正确格式化 - 谢谢。)

0 个答案:

没有答案