我正在将现有的管道从spark 1.6.0迁移到spark 2.1.0(cdh 5.15.1)。我使用的oozie版本(4.1.0)不支持spark2操作,所以我们使用java操作来运行spark2作业。
作业可以通过java action成功执行,但我面临的一个问题是,每当oozie工作流被终止时,spark应用程序都不会被终止,尤其是在运行集群模式时。
我可以理解java操作在单独的容器中启动spark驱动程序,这是一个单独的jvm进程。我只是想知道是否有办法处理这种情况。
发布于 2019-04-02 01:51:49
我非常确定所有作为MapReduce作业运行的Oozie操作都会发生这种情况。我在Hive2操作中也遇到过同样的问题。
来自O‘’Reilly的"Apache Oozie“
如果工作流的任何执行路径到达kill节点,Oozie将立即终止工作流,使所有正在运行的操作失败...并将该工作流的完成状态设置为KILLED。值得注意的是,Oozie不会显式终止与这些操作对应的集群上当前运行的MapReduce作业。
以及关于Java操作
此操作作为单个映射器作业运行...
https://stackoverflow.com/questions/55432529
复制相似问题