为oozie工作流运行单个应用程序主机

Evg*_*rev 5 java bigdata oozie hadoop-yarn

(根据为什么oozie发射器消耗2个纱线容器?)

我有1900核心和11TB RAM的集群.我有我的Oozie WF的下一个工作流程结构:

  • 大约300-400个具有相同结构的子工作流并行运行(通过fork控制节点)
  • 在这些子流中逐个运行几个任务(java动作,spark任务,shell动作)
  • 一些子流程可以在3-5分钟内执行,其中一些 - 2-3小时(长期火花任务)

问题是 - 是否可以在单个容器(应用程序主机)中运行这些子工作流程?默认情况下,对于每个子工作流程,oozie/yarn使用两个核心:一个用于AM,一个用于map-reduce任务(控制器).这是瓶颈 - 我的集群中所有核心的1/3仅用于控制但不用于计算

You*_*bit 3

我想您可以使用 oozie 的 uber 模式来保存启动 oozie 操作作业的容器。AM 将启动该操作,而不是从单独的容器中执行该操作。

将以下属性添加到oozie-site.xml.

<property>
  <name>oozie.action.launcher.mapreduce.job.ubertask.enable</name>
  <value>true</value>
</property>
Run Code Online (Sandbox Code Playgroud)