我想运行一个在我的(本地)机器上运行良好的PySpark程序。
我运行了一个Amazon Elastic Map Reduce集群,并安装了所有必需的依赖项(来自PyPI的Spark,Python模块)。
现在,如何运行使用某些自定义模块的PySpark作业?我已经尝试了很多事情,也许是半天,现在,无济于事。我到目前为止找到的最好的命令是:
/home/hadoop/spark/bin/spark-submit --master yarn-cluster \
--py-files s3://bucket/custom_module.py s3://bucket/pyspark_program.py
但是,Python失败了,因为它找不到custom_module.py
。它似乎试图复制它,但是:
INFO yarn.Client:上传资源s3://bucket/custom_module.py - > HDFS:// ...:9000 /用户/ hadoop的/ .sparkStaging / application_ ... _0001 / custom_module.py
INFO s3n.S3NativeFileSystem:正在打开 ' S3://bucket/custom_module.py'阅读
这看起来像是一个非常基本的问题,但网络上的内容相当沉默,包括官方文档(Spark文档似乎暗示了上面的命令)。
答案 0 :(得分:0)
解决方法包括为YARN定义SPARK_HOME
,即使这不是必需的:
spark-submit … --conf spark.yarn.appMasterEnv.SPARK_HOME=/home/hadoop/spark \
--conf spark.executorEnv.SPARK_HOME=/home/hadoop/spark …