如何在不同的工作程序节点上设置不同的Python路径?

时间:2019-11-26 10:12:03

标签: apache-spark pyspark

我正在使用Yarn进行火花作业。

问题是:一个工作程序(将其命名为worker2)上的Python解释器路径为/data/software/miniconda3/bin/python。 我的pyspark脚本在worker2上。下面是spark-env.sh上的worker2

YARN_CONF_DIR=/etc/hadoop/conf
#PYSPARK_PYTHON=`which ipython`
PYSPARK_PYTHON=/data/software/miniconda3/bin/python 

但是,worker1上的Python解释器路径为/software/anaconda3/bin/python

并且,我已经在spark-env.sh上设置了worker1

PYSPARK_PYTHON=/software/anaconda2/envs/py3/bin/ipython

但是,在运行时,它引发了错误:

Caused by: java.io.IOException: Cannot run program "/data/software/miniconda3/bin/python": error=2, No such file or directory                                                                   
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)                                                                                                                             
        at org.apache.spark.api.python.PythonWorkerFactory.startDaemon(PythonWorkerFactory.scala:174)                        

那么,如何使spark知道worker1上的真实Python解释器路径?

此外,我的提交火花的脚本是:

sudo -E -u hdfs spark-submit --master yarn word_cnt.py

0 个答案:

没有答案