gpt4 book ai didi

hadoop - 如何使用 oozie.launcher.action.main.class 将参数传递给 Oozie 操作?

转载 作者:可可西里 更新时间:2023-11-01 14:22:07 26 4
gpt4 key购买 nike

Oozie 有一个名为 oozie.launcher.action.main.class 的配置属性,您可以在其中为 map-reduce 操作(或 shell 操作)传入“主类”的名称,如下所示:

  <configuration>
<property>
<name>oozie.launcher.action.main.class</name>
<value>com.company.MyCascadingClass</value>
</property>
</configuration>

但是我需要将参数传递给我的主类,但找不到实现它的方法。有什么想法吗?

我问这个问题是因为我正尝试从 Oozie 中启动一个级联类/流,但到目前为止我尝试过的所有选项都失败了。如果有人从 Oozie 获得了 Cascading 功能,请告诉我,我会发布另一个问题来特别询问这个问题。

最佳答案

从 Oozie 3 开始(还没有尝试过 Oozie 4),我的主要问题的答案是:你不能。没有工具(奇怪地)为使用 oozie.launcher.action.main.class 属性定义的主类指定任何参数。

@Dmitry 在评论中建议仅使用 Oozie java 操作适用于级联作业(或任何依赖 Hadoop 的作业),因为 Oozie 在启 Action 业时将所有 Hadoop jar 放入类路径中。

我在我的博客上记录了一个从 Oozie 启动级联作业的工作示例:http://thornydev.blogspot.com/2013/10/launching-cascading-job-from-apache.html

这是对我有用的 workflow.xml 文件:

<workflow-app xmlns='uri:oozie:workflow:0.2' name='cascading-wf'>
<start to='stage1' />
<action name='stage1'>
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>

<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>

<main-class>com.mycompany.MyCascade</main-class>
<java-opts></java-opts>
<arg>/user/myuser/dir1/dir2</arg>
<arg>my-arg-2</arg>
<arg>my-arg-3</arg>
<file>lib/${EXEC}#${EXEC}</file>
<capture-output />
</java>
<ok to="end" />
<error to="fail" />
</action>

<kill name="fail">
<message>FAIL: Oh, the huge manatee!</message>
</kill>

<end name="end"/>
</workflow-app>

在 workflow.xml 附带的 job.properties 文件中,EXEC 属性定义为:

EXEC=mybig-shaded-0.0.1-SNAPSHOT.jar

然后job放到这两个定义文件所在的lib目录下。

关于hadoop - 如何使用 oozie.launcher.action.main.class 将参数传递给 Oozie 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19259687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com