我正在尝试使用ozzie运行示例impala查询。运行shell时我遇到错误
错误:E0701:E0701:XML架构错误,cvc-complex-type.2.3:元素 'shell'不能有字符[children],因为类型的内容 type是only元素。
HDFS中的Workflow.xml
<workflow-app name="shell-impala-select-wf" xmlns="uri:oozie:workflow:0.4">
<start to="shell-impala-select"/>
<action name="shell-impala-select">
<shell xmlns="uri:oozie:shell-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<exec>script.sh</exec>
<file>${appPath}/script.sh#script.sh</file>
<file>${appPath}/first_impala.iql#first_impala.iql</file>
</shell>
<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>
我检查过..这是一个有效的XML.first_impala.iql有一个select count(*)查询。
答案 0 :(得分:2)
Oozie validate命令说明了有效的XML。我最近遇到了与我自己的XML相同的错误消息。它是由一些无效的空白字符引起的,这些字符以某种方式进入我的XML(最有可能是一个杂散的复制/粘贴)。尝试从每一行中删除所有前导/尾随空格,并查找可能无效的任何其他字符。 Stack Overflow可能会删除帖子中的无效字符。