我在使用hue通过oozie运行pyspark脚本时遇到问题。我可以通过笔记本运行脚本中包含的相同代码,也可以使用spark-submit无错误地运行,这让我怀疑我的oozie工作流中的某些内容配置错误。为我的工作流xml生成的spark动作部分是:
<action name="spark-51d9">
<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>MySpark</name>
<jar>myapp.py</jar>
<file>/path/to/local/spark/hue-oozie-1511868018.89/lib/MyScript.py#MyScript.py</file>
</spark>
<ok to="hive2-07c2"/>
<error to="Kill"/>
</action>
我在日志中找到的唯一消息是:
Launcher ERROR,原因:主要课程[org.apache.oozie.action.hadoop.SparkMain], exit code [1]
这是我到目前为止没有解决问题的尝试: 我已尝试在纱线客户端和群集模式下运行它。我也尝试使用路径到单独的目录,并尝试使用hue生成的oozie工作流目录的lib目录,其中我有我的脚本。我认为它可以找到脚本,因为如果我指定另一个目录,我会收到一条消息,说明找不到它。非常感谢任何帮助。
答案 0 :(得分:1)
这对我有用的方法是:
首先创建一个将运行python脚本的sh文件。
该文件应具有sumbit命令:
....spark-submit
然后是你需要的所有标志:
--master yarn-cluster......--conf executer-cores 3 .......conf spark.executor.extraClassPath=jar1.jar:jar2.jar --driver-class-path jar1.jar:jar2.jar:jar3.jar
最后:
..... my_pyspark_script.py
然后创建工作流并选择shell选项并将sh文件添加为“shell命令”和在“files”中
从这里开始,确保一切正常连接是一项工作。 例如,我必须在我的sh文件中添加“export”,以便正确添加我的“spark / conf”。