【问题标题】:hive action failing in oozie (on cloudera CDH 4.1.1)oozie 中的蜂巢操作失败(在 cloudera CDH 4.1.1 上)
【发布时间】:2012-12-01 03:08:49
【问题描述】:

当我使用 from oozie od CDH 4.1.1 运行配置单元脚本时

运行失败:

Error Code  JA018
Error Message   org/apache/hadoop/hive/cli/CliDriver

Details
Property    Value
External Id job_201211281608_0112
External Status FAILED/KILLED
Data    None
Start time   Sat, 01 Dec 2012 03:02:37
End time     Sat, 01 Dec 2012 03:03:07
Id  0000007-121128160850795-oozie-oozi-W@ExchangeRateTest
Retries 0
TrackerUri  overlord-datanode1:8021
Transition  kill

Googling JA018 仅显示一个神秘提示:JA018 是工作流映射减少操作中的输出目录存在错误。

我将我的 hiv-site.xml 复制到 HDFS 并在 workflow.xml 中设置: oozie.hive.defaults /user/hue/oozie/workspaces/overlord-oozie-1/hive-site.xml

这是完整的workflow.xml:

<workflow-app name="HiveTest" xmlns="uri:oozie:workflow:0.4">
    <start to="ExchangeRateTest"/>
    <action name="ExchangeRateTest">
        <hive xmlns="uri:oozie:hive-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <prepare>
                <delete path="${nameNode}${jobOutput}"/>
            </prepare>
            <configuration>
                <property>
                    <name>oozie.use.system.libpath</name>
                    <value>true</value>
                </property>
                <property>
                    <name>oozie.hive.defaults</name>
                    <value>/user/hue/oozie/workspaces/_overlord_-oozie-1/hive-site.xml</value>
                </property>
            </configuration>
            <script>/user/hue/oozie/workspaces/_overlord_-oozie-1/03_update_exchange_rates_final.hive</script>
              <param>OUTPUT=${jobOutput}</param>
        </hive>
        <ok to="end"/>
        <error to="kill"/>
    </action>
    <kill name="kill">
        <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end"/>
</workflow-app>

如何让它工作?

【问题讨论】:

  • 您应该检查生成作业的 (job_201211281608_0112) 单地图任务日志中的实际错误。在这里在黑暗中拍摄:您是否正确设置了 Oozie sharelib?

标签: hadoop hive cloudera oozie


【解决方案1】:

执行 Hive 操作需要类 org/apache/hadoop/hive/cli/CliDriver。从错误消息中可以明显看出这一点。这个类在这个 jar 文件中:hive-cli-0.7.1-cdh3u5.jar。 (在我的 cloudera 版本中,我的情况是 cdh3u5)。

Oozie 在ShareLib 目录中检查这个jar。这个目录的位置通常配置在hive-site.xml,属性名称为oozie.service.WorkflowAppService.system.libpath,所以Oozie应该很容易找到jar。

但在我的例子中,hive-site.xml 没有包含这个属性,所以 Oozie 不知道在哪里可以找到这个 jar,因此使用了 java.lang.NoClassDefFoundError

为了解决这个问题,我必须在我的 job.properties 文件中包含一个参数,以将 oozie 指向 ShareLib 目录的位置,如下所示: oozie.libpath=${nameNode}/user/oozie/share/lib。 (取决于SharedLib 目录在集群上的配置位置)。

【讨论】:

    猜你喜欢
    • 2014-08-24
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多