我是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>
我该如何解决这个问题?
答案 0 :(得分:1)
您应该检查oozie:workflow和hive-action版本。
在我的情况下,我使用CDH4.3发行版,并且我使用了以下版本:
<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"/>