Oozie:从Oozie行动中启动地图减少<java>?



我正在尝试使用<java>操作在Oozie工作流中执行Map Reduce任务。

O'Reilley的Apache Oozie(伊斯兰和斯里尼瓦桑2015)指出:

虽然不建议使用Java操作,但Java操作可以用于运行Hadoop MapReduce作业,因为MapReduce毕竟只是Java程序。调用的主类可以是Hadoop MapReduce驱动程序,并且可以调用Hadoop API来运行MapReduce作业。在这种模式下,Hadoop会根据需要生成更多的映射器和还原器,并在集群上运行它们。

然而,我使用这种方法并没有取得成功。

工作流中的动作定义如下:

<java>
    <!-- Namenode etc. in global configuration -->
    <prepare>
      <delete path="${transformOut}" />
    </prepare>
    <configuration>
        <property>
            <name>mapreduce.job.queuename</name>
            <value>default</value>
        </property>
    </configuration>
    <main-class>package.containing.TransformTool</main-class>
    <arg>${transformIn}</arg>
    <arg>${transformOut}</arg>
    <file>${avroJar}</file>
    <file>${avroMapReduceJar}</file>
</java>

Tool实现的main()实现如下所示:

public static void main(String[] args) throws Exception {
    int res = ToolRunner.run(new TransformTool(), args);
    if (res != 0) {
        throw new Exception("Error running MapReduce.");
    }
}

工作流每次都会崩溃,出现上面的"运行MapReduce时出错"异常如何获得MapReduce的输出来诊断问题?使用此Tool运行MapReduce应用程序有问题吗我是否使用了错误的API调用?

我非常不愿意使用Oozie <map-reduce>操作,因为工作流中的每个操作都依赖于几个单独版本的AVRO模式。

这里有什么问题?我正在为该任务使用"新"mapreduce API。

谢谢你的帮助。

>如何获得MapReduce的输出

回到基础。

由于您不想提及您正在使用的Hadoop版本和Oozie版本,我将假设是"最近"的设置(例如Hadoop 2.7 w/TimelineServer和Oozie4.2)。由于您没有提及您使用的接口类型(命令行?原生Oozie/Yarn UI?Hue?),我将举几个使用good'ld'CLI的例子。

> oozie jobs -localtime -len 10 -filter name=CrazyExperiment

显示"CrazyExperiment"工作流的最后10次执行,以便您可以在接下来的命令中注入适当的"作业ID"。

> oozie job -info 0000005-151217173344062-oozie-oozi-W

从Oozie的角度显示该执行的状态。如果您的Java操作被困在PREP模式,那么Oozie无法将其提交给YARN;否则,您将在"外部ID"下找到类似job_1449681681381_5858的内容。但是要小心!job前缀是一个遗留的东西;实际的YARN ID是CCD_ 10。

> oozie job -log 0000005-151217173344062-oozie-oozi-W

显示Oozie日志,正如预期的那样。

> yarn logs -applicationId application_1449681681381_5858

显示AppMaster(容器#1)和Java操作启动器(容器#2)的合并日志——执行结束后。Launcher的stdout日志包含大量Oozie调试内容,真正的stdout在最底层。

如果您的Java操作成功地生成了另一个YARN作业,并且您小心地显示了子"应用程序ID",那么您应该能够在那里检索它,并对它运行另一个yarn logs命令。

享受接下来5天的调试;-)

相关内容

  • 没有找到相关文章

最新更新