1 回答

TA贡献1810条经验 获得超4个赞
所以我们终于弄清楚了这个问题——至少在我们的例子中是这样。
使用 Hue 创建工作流时,添加 Spark 操作时,默认情况下会提示输入“文件”和“Jar/py 名称”。我们分别在这些字段中提供了我们想要运行的 JAR 文件的路径和该 JAR 文件的名称,它创建了如下所示的基本操作:
它创建的最终 XML 如下所示:
<action name="spark-210e">
<spark xmlns="uri:oozie:spark-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<master>yarn</master>
<mode>cluster</mode>
<name>CleanseData</name>
<class>com.data.CleanseData</class>
<jar>JCleanseData.jar</jar>
<spark-opts>--driver-memory 2G --executor-memory 2G --num-executors 10 --files hive-site.xml</spark-opts>
<arg>yarn</arg>
<arg>[someArg1]</arg>
<arg>[someArg2]</arg>
<file>lib/JCleanseData.jar#JCleanseData.jar</file>
</spark>
<ok to="[nextAction]"/>
<error to="Kill"/>
</action>
在我们的案例中,其中的默认file标签导致了问题。
因此,我们删除了它并将定义编辑为如下所示并且有效。还要注意对<jar>标签的更改。
<action name="spark-210e">
<spark xmlns="uri:oozie:spark-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<master>yarn</master>
<mode>cluster</mode>
<name>CleanseData</name>
<class>com.data.CleanseData</class>
<jar>hdfs://path/to/JCleanseData.jar</jar>
<spark-opts>--driver-memory 2G --executor-memory 2G --num-executors 10 --files hive-site.xml</spark-opts>
<arg>yarn</arg>
<arg>[someArg1]</arg>
<arg>[someArg1]</arg>
</spark>
<ok to="[nextAction]"/>
<error to="Kill"/>
</action>
PS:我们对 Hive 操作也有类似的问题。hive-site.xml我们应该通过 Hive 操作传递的文件——它创建了一个<job-xml>标签——也导致了问题。所以我们删除了它,它按预期工作。
添加回答
举报