我正在尝试使用 HDP 2.2 通过亚马逊上的 oozie 运行配置单元作业。 运行作业的用户是 ec2-user。 当我运行“dryrun”时,出现以下错误:
oozie 作业 -oozie htp://~internal:11000/oozie -config job.properties -dryrun
Error: E0803 : E0803: IO error, Encountered ": java .", expected one of ["}", ".", ">", "gt", "<", "lt", "==", "eq", "<=", "le", ">=", "ge", "!=", "ne", "[", "+", "-", "*", "/", "div", "%", "mod", "and", "&&", "or", "||", ":", <IDENTIFIER>, "(", "?"]
以前有人见过这个吗? 以下是我的工作流程。
<workflow-app name="OozieWorkflow" xmlns="uri:oozie:workflow:0.4">
<start to="load" />
<action name="load">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>/user/ec2-user/hive-site-oozie.xml</job-xml>
<script>/user/ec2-user/loadData.hql</script>
<file>/user/ec2-user/hive-site-oozie.xml#hive-site-oozie.xml</file>
</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>
我的工作属性是:
nameNode=hdfs://~internal:8020
jobTracker=http://~internal:8050
queueName=default
#oozie.libpath=
oozie.use.system.libpath=true
oozie.wf.application.path=${nameNode}/user/ec2-user
最佳答案
我找到了导致此错误的一个原因。至少这是我在运行 oozie 作业时出现奇怪但无害的 EL 错误的原因。
包含 hive-site.xml 就行了
<job-xml>/user/ec2-user/hive-site-oozie.xml</job-xml>
在 hdp2.2 中,hive-site.xml 包含此元素:
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>${system:java.io.tmpdir}/${system:user.name}/operation_logs</value>
</property>
出于某种原因,oozie 还会评估所提供的 job-xml 中的表达式。请注意 ${system:java.io.tmpdir} 它不是有效的 Oozie EL 表达式。
除了从提供的 job-xml 中排除该值之外,我不确定如何避免此错误
关于amazon-ec2 - Amazon 上的 Oozie Hive 作业错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27565299/