Oozie中的Hive Action 3.1.3

时间:2013-07-04 04:46:22

标签: hadoop hive oozie

我是Hive和Oozie的新手。我试图通过Oozie运行Hive脚本。 这是我得到的错误。

  

错误:E0701:E0701:XML模式错误,cvc-complex-type.2.4.c:匹配的通配符是strict,但是没有找到元素'hive'的声明。

这是我的workflow.xml:

  <?xml version="1.0" encoding="UTF-8"?>
  <workflow-app xmlns="uri:oozie:workflow:0.2" name="temp-hive">
  <start to="hive-ex"/>
  <action name="hive-ex">
  <hive xmlns="uri:oozie:hive-action:0.2">
  <job-tracker>${jobTracker}</job-tracker>
  <name-node>${nameNode}</name-node>
  <configuration>
  <property>
  <name>mapred.job.queue.name</name>
  <value>default</value>
  </property>
  <property>
  <name>oozie.hive.defaults</name>
   <value>/home/hduser/hive/conf/hive-site.xml</value>
  </property>
  </configuration>
  <script>ooziequery.q</script>
  </hive>
  <ok to="end"/>
  <error to="fail"/>
  </action>
  <kill name="fail">
  <message>Hive script failed!!</message>
  </kill>
  <end name="end"/>
  </workflow-app>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您应该检查oozie:workflow和hive-action版本。

在我的情况下,我使用CDH4.3发行版,并且我使用了以下版本:

0.4为oozie工作流程,0.2为hive行动

<workflow-app name="test-hive" xmlns="uri:oozie:workflow:0.4">
<start to="hive-request"/>
<action name="hive-request">
    <hive xmlns="uri:oozie:hive-action:0.2">
        <job-tracker>${jobTracker}</job-tracker>
        <name-node>${nameNode}</name-node> 
    <job-xml>conf/hive-site.xml</job-xml>
        <script>lib/script.sql</script>
    </hive>
    <ok to="end"/>
    <error to="fail"/>
</action>
<!-- Fail bloc, redirect every action here when an error occurs-->
<kill name="fail">
    <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>