Apache spark 在群集上部署pyspark作业时FileNotFoundException
正在尝试使用以下命令在纱线簇上提交以下test.py Spark应用程序Apache spark 在群集上部署pyspark作业时FileNotFoundException,apache-spark,pyspark,Apache Spark,Pyspark,正在尝试使用以下命令在纱线簇上提交以下test.py Spark应用程序 PYSPARK_PYTHON=./venv/venv/bin/python spark-submit --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./venv/venv/bin/python --master yarn --deploy-mode cluster --archives venv#venv test.py 注意:我没有使用本地模式,而是尝试使用virtuale
PYSPARK_PYTHON=./venv/venv/bin/python spark-submit --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./venv/venv/bin/python --master yarn --deploy-mode cluster --archives venv#venv test.py
注意:我没有使用本地模式,而是尝试使用virtualenv下的python3.7站点包,用于在PyCharm中构建代码。virtualenv提供的自定义应用程序包不是作为群集服务提供的
这就是Python项目结构与venv目录内容的外观
-rw-r--r-- 1 schakrabarti nobody 225908565 Feb 26 13:07 venv.tar.gz
-rw-r--r-- 1 schakrabarti nobody 1313 Feb 26 13:07 test.py
drwxr-xr-x 6 schakrabarti nobody 4096 Feb 26 13:07 venv
drwxr-xr-x 3 schakrabarti nobody 4096 Feb 26 13:07 venv/bin
drwxr-xr-x 3 schakrabarti nobody 4096 Feb 26 13:07 venv/share
-rw-r--r-- 1 schakrabarti nobody 75 Feb 26 13:07 venv/pyvenv.cfg
drwxr-xr-x 2 schakrabarti nobody 4096 Feb 26 13:07 venv/include
drwxr-xr-x 3 schakrabarti nobody 4096 Feb 26 13:07 venv/lib
获取文件的相同错误不存在-pyspark.zip(如下所示)
请参阅我在Spark-10795上添加的评论:如果我误解了问题,我深表歉意,但根据
PYSPARK_PYTHON=./venv/venv/bin/python spark-submit --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./venv/venv/bin/python --master yarn --deploy-mode cluster --archives venv#venv test.py
您使用纱线簇,但在测试中.py
#test.py
import json
from pyspark.sql import SparkSession
if __name__ == "__main__":
spark = SparkSession.builder \
.appName("Test_App") \
.master("spark://gwrd352n36.red.ygrid.yahoo.com:41767") \
.config("spark.ui.port", "4057") \
.config("spark.executor.memory", "4g") \
.getOrCreate()
print(json.dumps(spark.sparkContext.getConf().getAll(), indent=4))
spark.stop()
您尝试连接到Spark独立群集
spark://gwrd352n36.red.ygrid.yahoo.com:41767
因此,这可能是一个问题,而不是问题所在,因为我忘了用虚拟主机名替换实际主机名。我使用的主URL与从
sc.getConf.getAll
返回的URL相同,您的意思是使用spark://前缀用于独立集群吗?您是否建议使用hdfs://?是的,spark://仅适用于独立群集。实际上,若在start命令中使用-master,则不需要在代码中指定master。根据需要指定HADOOP\u CONF\u DIR或Thread\u DIR位置指定spark.HADOOP.Thread.resourcemanager.hostname
和spark.HADOOP.Thread.resourcemanager.address
也可以提供帮助。使用.master(“纱线簇”)
。仍然面临同样的问题。
spark://gwrd352n36.red.ygrid.yahoo.com:41767