Apache spark 群集模式下的Spark提交

Apache spark 群集模式下的Spark提交,apache-spark,pyspark,yarn,Apache Spark,Pyspark,Yarn,在群集模式下启动Spark应用程序时遇到问题 这是。sh: export SPARK_MAJOR_VERSION=2 spark-submit \ --master yarn \ --deploy-mode cluster \ --driver-memory 8G \ --executor-memory 8G \ --total-executor-cores 4 \ --num-executors 4 \ /home/hdfs/spark_scripts/ETL.py

在群集模式下启动Spark应用程序时遇到问题

这是。sh:

export SPARK_MAJOR_VERSION=2
spark-submit \
  --master yarn \
  --deploy-mode cluster \
  --driver-memory 8G \
  --executor-memory 8G \
  --total-executor-cores 4 \
  --num-executors 4 \
  /home/hdfs/spark_scripts/ETL.py &> /home/hdfs/spark_scripts/log_spark.txt
在纱线日志中,我发现有一个与“ETL.py”中所需的.py文件相关的导入错误。换句话说,在“ETL.py”中,我有一行这样做: 导入应用程序实用程序

AppUtilit.py与ETL.py位于同一路径中 在本地模式下,它可以工作 这是纱线日志: 20/04/28 10:59:59 INFO compress.codepool:获得全新的解压器[.deflate] 集装箱:ftpandbit02.carte.local_45454上的集装箱_e64_158454814241_22431_02_000001 LogAggregationType:已聚合 日志类型:stdout LogLastModifiedTime:周二4月28日10:57:10+0200 对数长度:138 日志内容: 回溯(最近一次呼叫最后一次): 文件“ETL.py”,第8行,在 导入应用程序实用程序 ImportError:没有名为AppUtility的模块

日志类型结束:标准输出



日志类型结束:prelaunch.err

它取决于客户端模式或群集模式

  • 如果在客户机模式下使用Spark, 您需要将任何依赖项安装到纱线启动执行器的机器上。这是唯一可靠的方法,使这项工作

  • 使用火花与纱线簇模式,则是另一回事。您可以使用分发python依赖项

spark submit./bin/spark submit--py文件AppUtility.py /home/hdfs/spark_scripts/ETL.py

--py files指令将文件发送给Spark workers,但不会将其添加到PYTHONPATH

要将依赖项添加到PYTHONPATH以修复导入错误,请将以下行添加到Spark作业ETL.py

sc.addPyFile(路径)

路径:AppUtility.py(它可以是本地文件、HDFS、zip格式的文件或HTTP、HTTPS或FTP URI)