我正在运行我的mapreduce作业作为来自Oozie工作流的java操作。当我在hadoop集群中运行mapreduce时,它会成功运行,但当我使用Oozie工作流中的同一jar运行时,它会抛出错误
这是我的工作流.xml
<workflow-app name="HBaseToFileDriver" xmlns="uri:oozie:workflow:0.1">
<start to="mapReduceAction"/>
<action name="mapReduceAction">
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<prepare>
<delete path="${outputDir}"/>
</prepare>
<configuration>
<property>
<name>mapred.mapper.new-api</name>
<value>true</value>
</property>
<property>
<name>mapred.reducer.new-api</name>
<value>true</value>
</property>
<property>
<name>oozie.libpath</name>
<value>${appPath}/lib</value>
</property>
<property>
<name>mapreduce.job.queuename</name>
<value>root.fricadev</value>
</property>
</configuration>
<main-class>com.thomsonretuers.hbase.HBaseToFileDriver</main-class>
<arg>fricadev:FinancialLineItem</arg>
<capture-output/>
</java>
<ok to="end"/>
<error to="killJob"/>
</action>
<kill name="killJob">
<message>"Killed job due to error: ${wf:errorMessage(wf:lastErrorNode())}"</message>
</kill>
<end name="end" />
</workflow-app>下面是我在纱线中看到原木时的例外情况。即使显示为成功,但不会生成输出文件。
发布于 2017-03-08 19:20:48
你调查过Oozie Java Action吗?
IMPORTANT: In order for a Java action to succeed on a secure cluster, it must propagate the Hadoop delegation token like in the following code snippet (this is benign on non-secure clusters):
// propagate delegation related props from launcher job to MR job
if (System.getenv("HADOOP_TOKEN_FILE_LOCATION") != null) {
jobConf.set("mapreduce.job.credentials.binary", System.getenv("HADOOP_TOKEN_FILE_LOCATION"));
}必须从系统环境变量中获取HADOOP_TOKEN_FILE_LOCATION并将其设置为属性mapreduce.job.credentials.binary。
HADOOP_TOKEN_FILE_LOCATION由oozie在运行时设置。
https://stackoverflow.com/questions/42669430
复制相似问题