我正在创建oozie工作流,在该工作流中,我将依次调用蜂巢sqls。
首先,sql具有简单的转换逻辑。而第二条则有临时函数创建命令和添加查找文件命令。我将在sql中进一步使用此UDF。
添加JAR **;
创建临时函数XXXXX,作为.;
添加文件*;
<workflow-app xmlns="uri:oozie:workflow:0.4" name="hive-wf">
<credentials>
<credential name="hive_credentials" type="hcat">
<property>
<name>hcat.metastore.uri</name>
<value>XXXXXXXX</value>
</property>
<property>
<name>hcat.metastore.principal</name>
<value>XXXXXXXX</value>
</property>
</credential>
</credentials>
<start to="hive-1" />
<action name="hive-1" cred="hive_credentials">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>XXXXXXX</job-tracker>
<name-node>XXXXXXX</name-node>
<job-xml>/XXXXXX/oozie/oozie-hive-site.xml</job-xml>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>default</value>
</property>
</configuration>
<script>/XXXXXXX/hive_1.sql</script>
</hive>
<ok to="hive-2" />
<error to="fail" />
</action>
<action name="hive-2" cred="hive_credentials">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>XXXXXXXX</job-tracker>
<name-node>XXXXXXXX</name-node>
<job-xml>/XXXXXX/oozie/oozie-hive-site.xml</job-xml>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>default</value>
</property>
</configuration>
<script>/XXXXXXX/hive_2.sql</script>
</hive>
<ok to="end" />
<error to="fail" />
</action>
<kill name="fail">
<message>Hive failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end" />
首先成功执行hql脚本。工作流在执行第二个hql脚本时会被终止,从而导致以下错误。
JOB0000044-140317190624992-oozie-oozi-W操作- E1100:命令先决条件在执行前不保持,coord操作为空,错误代码: E1100
它在执行添加UDF的命令时抛出错误。(添加JAR,创建临时文件,添加文件)。
我搜索了这个错误,我有一些链接来忽略这个错误!
但是,我在第二个Hql脚本中给出的使用hive的实际sql没有执行。
你能帮忙吗?
发布于 2014-04-10 09:54:22
add jar路径是一个本地机器路径。
Oozie操作在datanodes上运行。有可能它无法在datanode上找到jar,从而给出一个错误(检查mapreduce日志,您会找到原因)
如果这是一个问题,一个解决方法是将该文件放入HDFS,并在执行过程中将其复制到datanode上的本地文件集中。
https://stackoverflow.com/questions/22566802
复制相似问题