我正在oozie中运行一个火花流应用程序。它在开发环境中运行良好,其中spark版本为1.3.0。但在其他地区,它失败并出现以下错误。
2016-04-27 05:39:58,142 ERROR [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster
java.lang.IllegalArgumentException: Invalid ContainerId: container_e31_1461603486630_0010_01_000001
这个地区有1.5版本的火花。 CDH版本是5.5.0。我知道它与spark版本有关,但是oozie share lib的spark-core jar版本也是1.5,而spark程序集也有1.5版本。下面是我的workflow.xml和属性文件。我也尝试直接在workflow.xml中添加类路径,但这也没有帮助。
<workflow-app xmlns="uri:oozie:workflow:0.1" name="sample" >
<start to="spark-stream" />
<action name="spark-stream">
<spark xmlns="uri:oozie:spark-action:0.1">
<job-tracker>${job_tracker}</job-tracker>
<name-node>${name_node}</name-node>
<master>yarn-cluster</master>
<mode>cluster</mode>
<name>jobname</name>
<class>classname</class>
<jar>/path/jar</jar>
<spark-opts>--executor-cores 100 --executor-memory 12G --driver-memory 4G --conf spark.executor.extraClassPath=/opt/cloudera/parcels/CDH-5.5.0-1.cdh5.5.0.p0.8/lib/hadoop/hadoop-annotations-2.6.0-cdh5.5.0.jar spark.driver.extraClassPath=/opt/cloudera/parcels/CDH-5.5.0-1.cdh5.5.0.p0.8/lib/hadoop/hadoop-annotations-2.6.0-cdh5.5.0.jar</spark-opts>
</spark>
<ok to="end"/>
<error to="mail_users"/>
</action>
<action name="mail_users">
<email xmlns="uri:oozie:email-action:0.1">
<to>sample@sample.com</to>
<subject>Job failed</subject>
<body>Please check</body>
</email>
<ok to="end"/>
<error to="end"/>
</action>
<end name="end" />
</workflow-app>
属性文件:
job_tracker=server:8032
name_node=hdfs://server:8020
examplesRoot=rootdir
oozie.use.system.libpath=true
oozie.wf.application.path=${name_node}/test/${examplesRoot}
我的lib文件夹有spark程序集jar以及作业jar。有人可以为此建议解决方法或解决方案。