小编Ale*_*ska的帖子

如何从另一个应用程序启动它时正确等待apache spark启动器作业?

当我等到我的火花apache工作完成时,我试图避免"while(true)"解决方案,但没有成功.

我有一个spark应用程序,它假设处理一些数据并将结果放到数据库中,我确实从我的spring服务中调用它,并希望等到作业完成.

例:

启动器方法:

@Override
public void run(UUID docId, String query) throws Exception {
    launcher.addAppArgs(docId.toString(), query);

    SparkAppHandle sparkAppHandle = launcher.startApplication();

    sparkAppHandle.addListener(new SparkAppHandle.Listener() {
        @Override
        public void stateChanged(SparkAppHandle handle) {
            System.out.println(handle.getState() + " new  state");
        }

        @Override
        public void infoChanged(SparkAppHandle handle) {
            System.out.println(handle.getState() + " new  state");
        }
    });

    System.out.println(sparkAppHandle.getState().toString());
}
Run Code Online (Sandbox Code Playgroud)

如何正确等待,直到处理程序状态为"已完成".

java apache-spark spark-launcher

6
推荐指数
1
解决办法
4362
查看次数

标签 统计

apache-spark ×1

java ×1

spark-launcher ×1