hadoop - Ozzie Flow无法使用HDF-QL添加UDF添加命令

标签 hadoop oozie hiveql

我正在创建oozie工作流,在该工作流中我依次调用hive sql。

首先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脚本时,工作流被杀死,给出以下错误。

JOB [0000044-140317190624992-oozie-oozi-W]操作[-] E1100:命令先决条件在执行前不成立,[,coord action为空],错误代码:E1100

在执行添加UDF的命令时,它会引发错误。(ADD JAR,CREATE TEMPORARY,ADD FILE)。

我搜索了此错误,并且获得了一些忽略该错误的链接!

但是,我使用第二个Hql脚本中给出的配置单元UDF的实际sql未执行。

你能帮忙吗?

最佳答案

add jar路径是本地计算机路径。

Oozie操作在数据节点上运行。有可能无法在datanode上找到jar并因此给出错误(检查mapreduce日志,您会找到原因)

如果这是一个问题,一种解决方法是将文件放入HDFS并在执行期间将其复制到datanode上的本地文件系统中。

关于hadoop - Ozzie Flow无法使用HDF-QL添加UDF添加命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22566802/

相关文章:

sql - hive 查询 : Ambiguous column reference acct_nbr in stage

hadoop - pig :给推文增值

hadoop - 将数据从 txt 表加载到 orc 表 HIVE-查询

sql - 如何在Hive上处理SQL中的数据偏斜?

java - MapReduce 作业的Reducer 中的奇怪行为

hadoop - hdfs或hadoop命令在本地到hdfs之间同步文件或文件夹

hadoop - 基于子查询在配置单元表中添加分区

java - oozie 工作流作业 ID 是唯一的吗?

hadoop - oozie 不允许冒充 oozie

hadoop - Oozie/ yarn : resource changed on src filesystem