用于oozie工作流的java运行单应用程序主控程序
(根据Why does the oozie luncher consume 2 yarn containers?)
我有1900内核和11TB内存的集群。 我还有Oozie WF的下一个工作流结构:
- 大约300-400个子工作流,其结构与将运行的相同 并行(通过fork控制节点)
- 在这些子流中逐个运行 几个任务(java操作、spark任务、shell操作)
- 一些 子流可以在3-5分钟内执行,其中一些可以在2-3小时(长)内执行 术语(火花任务)
问题是——是否可以在一个单一容器(application master)中运行这些子工作流?默认情况下,对于每个子工作流,oozie/Thread使用两个核心:一个用于AM,另一个用于map reduce任务(控制器)。这是一个瓶颈——我集群中所有核心的1/3只用于控制,不用于计算
# 1 楼答案
我想你可以使用oozie的uber模式来保存启动oozie动作作业的容器。AM将启动该操作,而不是从单独的容器中启动
将以下属性添加到
oozie-site.xml