当我在spark python的例子中使用spark run pi.py脚本时出现问题,当我使用yarn-client模式时,一切正常。但是当我使用yarn-cluster模式时,作业无法启动,容器会返回如下语法错误:
日志类型:标准输出
日志上传时间:2015年5月21日星期四08:48:16 +0800
LogLength:111
日志内容:
文件" pi.py",第40行
return 1 if x ** 2 + y ** 2 < 1 else 0
我确定脚本是对的,任何人都可以帮助我。
答案 0 :(得分:3)
注意到语法错误是新版python中包含的功能,所以我意识到这可能是关于python版本的spark使用的问题。
我在/etc/spark/conf.cloudera.spark_on_yarn/spark-defaults.conf中添加了一个属性:
spark.yarn.appMasterEnv.PYSPARK_PYTHON
指定python二进制路径。
然后问题解决了。
答案 1 :(得分:1)
spark目前不支持在集群模式下运行python脚本(将驱动程序部署到集群)
或者,如果您的应用程序是从远程机器提交的 从工作机器(例如,在您的笔记本电脑上本地),这是常见的 使用群集模式来最小化驱动程序之间的网络延迟 和遗嘱执行人。请注意,目前不支持群集模式 对于Mesos集群或Python应用程序。
https://spark.apache.org/docs/1.3.1/submitting-applications.html