在尝试加载oozie spark2操作的依赖jar时,获取以下错误。在下面添加了workflow.xml。
错误:
2019年-06-12 07:00:35,140警告SparkActionExecutor:523 - SERVERmanager-0 USERroot组- TOKEN[] APPspark wf 523 0068-190611183932696-oozie- ERROR W启动程序错误,原因:主类org.apache.oozie.action.hadoop.SparkMain,main()抛出异常,试图多次向分布式缓存中添加(hdfs://${nameNode}/${workflowAppUri}/lib/${dependencyJar}) .
workflow.xml
<workflow-app xmlns="uri:oozie:workflow:0.3" name="spark-wf">
<start to="spark-node"/>
<action name="spark-node">
<spark xmlns="uri:oozie:spark-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>
<master>yarn-cluster</master>
<name>test_spark</name>
<class>${className}</class>
<jar>${workflowAppUri}/lib/${executableJar}</jar>
<spark-opts>--jars ${workflowAppUri}/lib/${dependencyJar}</spark-opts>
<arg>${arg1}</arg>
<arg>${arg2}</arg>
</spark>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
</workflow-app>这与oozie和spark2 sharelib目录中的复制jars不一样。删除了spark2 sharelib中的重复jars。但这没什么用。
这是什么原因?请帮帮我!
发布于 2019-06-13 09:03:47
如果我们在应用程序根目录的lib目录中添加jars,oozie会自动将jars分发到它的分布式缓存中。在我的例子中,我尝试添加已经在lib目录中的jar。所以,我只需要从我的工作流定义中删除下面的一行。
<spark-opts>--jars ${workflowAppUri}/lib/${dependencyJar}</spark-opts>此外,我还测试过,如果您想附加库目录中不可用的jars,您可以在工作流定义中提到如下所示。
<spark-opts>--jars ${nameNode}/tmp/{someJar}</spark-opts>https://stackoverflow.com/questions/56562251
复制相似问题