首页 > 解决方案 > Oozie Spark2 Java 操作:如何关闭

问题描述

我正在将现有管道从 spark 1.6.0 迁移到 spark 2.1.0(cdh 5.15.1)。我正在使用的 oozie 版本(4.1.0)不支持 spark2 操作,因此我们使用 java 操作运行 spark2 作业。

作业通过 java 操作成功执行,但我面临的一个问题是,每当 oozie 工作流被终止时,spark 应用程序不会被终止,尤其是在运行集群模式时。

我可以理解 java 操作在一个单独的容器中启动 spark 驱动程序,该容器是一个单独的 jvm 进程。只是想了解是否有办法处理这种情况。

标签: javahadoop-yarnoozieapache-spark-2.0

解决方案


我很确定所有作为 MapReduce 作业运行的 Oozie 操作都会发生这种情况。我在 Hive2 操作中遇到了同样的问题。

来自 O'Reilly 的“Apache Oozie”

如果工作流的任何执行路径到达终止节点,Oozie 将立即终止工作流,使所有正在运行的操作失败……并将工作流的完成状态设置为 KILLED。值得注意的是,Oozie 不会显式地杀死 Hadoop 集群上与这些操作对应的当前正在运行的 MapReduce 作业。

关于 Java 动作

此操作作为单个映射器作业运行....


推荐阅读