有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于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) 个答案

  1. # 1 楼答案

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

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

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