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

标签 java hadoop-yarn oozie bigdata

(根据 Why does the oozie luncher consume 2 yarn containers? )

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

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

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

最佳答案

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

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

<property>
  <name>oozie.action.launcher.mapreduce.job.ubertask.enable</name>
  <value>true</value>
</property>

关于java - 为 oozie 工作流运行单个应用程序主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42178437/

相关文章:

java - 什么是 webservices-rt.jar?跟 metro 有关系吗?

java - Android-改造-java.lang.NullPointerException : Attempt to invoke virtual method

java - 在 Hbase 上运行 MapReduce 时出现 KERBEROS 错误

python - DAG(有向无环图)动态作业调度器

hadoop - Oozie 协调器问题

hadoop - Oozie在目录中生成一组文件

java - 静态日历变量上的 Sonar 错误

java - 字符串和变量串联的JOptionPane错误

apache-spark - 并行运行多个 Spark 应用程序

python - dask-yarn KilledWorker 没有有意义的回溯