以下是我的workflow.xml
<workflow-app xmlns="uri:oozie:workflow:0.3" name="import-job">
<start to="createtimelinetable" />
<action name="createtimelinetable">
<sqoop xmlns="uri:oozie:sqoop-action:0.3">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
</configuration>
<command>import --connect jdbc:mysql://10.65.220.75:3306/automation --table ABC --username root</command>
</sqoop>
<ok to="end"/>
<error to="end"/>
</action>
<end name="end"/>
</workflow-app>
尝试提交作业时出现以下错误:
错误:E0701:E0701:XML架构错误,cvc-elt.1.a:找不到元素&#39; action&#39;的声明。
但是,oozie验证workflow.xml返回: 有效的worflow-app
过去曾遇到并解决过类似问题的人?
答案 0 :(得分:3)
确认您是否已将workflow.xml复制到hdfs。您不需要将job.properties复制到hdfs,但必须将所有其他文件和库复制到hdfs
答案 1 :(得分:0)
对于通过谷歌搜索以下错误消息到达此处的用户,是解决Oozie模式问题的一般方法:
一旦您的工作流程.xml完成,最好的方法是根据oozie XSD模式文件对其进行验证,而不是提交Ooozie作业并稍后处理问题。
关于什么是XSD模式的说明: XSD模式是一种叙述性的验证文件,
a。标签顺序
b。标签是否应存在
c。标签等中有效的子标签是什么?
如何根据XSD验证工作流XML?
a。找出特定的XSD,这在xmlns(xml名称空间)属性中可以看到
<工作流程应用名称='FooBarWorkFlow' xmlns =“ uri:oozie:workflow:0.4”>
在这种情况下,它是uri:oozie:workflow:0.4。找到uri:oozie:workflow:0.4的XSD文件(可以从Oozie官方网站的附录中获取,也可以通过Googling轻松找到)
b。 XML验证站点很多(例如https://www.liquid-technologies.com/online-xsd-validator),提供您的工作流程XML文件,XSD文件并进行验证
工作流XML文件中的错误将与行和列信息一起列出。纠正这些问题,现在使用有效的Workflow XML文件来避免oozie中的架构验证错误。
答案 2 :(得分:0)
oozie validate some_workflow.xml
告诉您行号,比记录输出更容易理解。