java - 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 进程。只是想了解是否有办法处理这种情况。
解决方案
我很确定所有作为 MapReduce 作业运行的 Oozie 操作都会发生这种情况。我在 Hive2 操作中遇到了同样的问题。
来自 O'Reilly 的“Apache Oozie”
如果工作流的任何执行路径到达终止节点,Oozie 将立即终止工作流,使所有正在运行的操作失败……并将工作流的完成状态设置为 KILLED。值得注意的是,Oozie 不会显式地杀死 Hadoop 集群上与这些操作对应的当前正在运行的 MapReduce 作业。
关于 Java 动作
此操作作为单个映射器作业运行....
推荐阅读
- bash - Bash 通过 ssh 连接 3 台机器的输出
- database - 将 Azure 上的数据库数据复制到 Azure 上的另一个数据库
- c - C - 'if' 之后的代码(以及在 'while' 内)不执行
- php - Micro Phalcon 应用程序的 notFound() 路由
- python - 将 Pandas 数据帧与列名和索引名相乘
- c++ - 为什么 x & (-x) 等于 2 除以 x 的最大幂?(C++)
- testing - 集成和单元测试不再适用于 ASP.NET Core 2.1 无法在运行时找到程序集
- awk - awk 命令打印 unix 文件中存在模式且找到的模式后的数值大于 100 的所有行
- r - ggplot:将线型映射到因子并在一个特定级别上强制实线?
- events - youtube iframe 播放器视频网址中的奇怪参数