gpt4 book ai didi

apache-spark - PYSPARK_PYTHON 适用于 --deploy-mode 客户端但不适用于 --deploy-mode 集群

转载 作者:行者123 更新时间:2023-12-05 07:45:48 26 4
gpt4 key购买 nike

我正在尝试使用自定义 python 运行 python 脚本并在 Enterprise 4.2 集群上部署 --deploy-mode cluster

[biadmin@bi4c-xxxxx-mastermanager ~]$ hive
hive> CREATE TABLE pokes (foo INT, bar STRING);
OK
Time taken: 2.147 seconds
hive> LOAD DATA LOCAL INPATH '/usr/iop/4.2.0.0/hive/doc/examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;
Loading data to table default.pokes
Table default.pokes stats: [numFiles=1, numRows=0, totalSize=5812, rawDataSize=0]
OK
Time taken: 0.49 seconds
hive>

然后我创建一个简单的 pyspark 脚本:

[biadmin@bi4c-xxxxxx-mastermanager ~]$ cat test_pokes.py
from pyspark import SparkContext
from pyspark.sql import HiveContext

sc = SparkContext()
hc = HiveContext(sc)

pokesRdd = hc.sql('select * from pokes')
print( pokesRdd.collect() )

然后我尝试像这样运行脚本:

export PYSPARK_PYTHON=/home/biadmin/anaconda2/bin/python2.7 
export PYSPARK_DRIVER_PYTHON=/home/biadmin/anaconda2/bin/python2.7
spark-submit --master yarn \
--deploy-mode cluster \
--jars /usr/iop/4.2.0.0/hive/lib/datanucleus-api-jdo-3.2.6.jar,/usr/iop/4.2.0.0/hive/lib/datanucleus-core-3.2.10.jar,/usr/iop/4.2.0.0/hive/lib/datanucleus-rdbms-3.2.9.jar \
--files /usr/iop/current/spark-client/conf/hive-site.xml \
test_pokes.py

这在 yarn 集群上运行但不使用 PYSPARK_PYTHON 变量。

但是,如果我使用 --deploy-mode client,则可以使用 PYSPARK_PYTHON


更新

我已经尝试在初始化 SparkContext 之前添加它:

os.environ["PYSPARK_PYTHON"] = '/home/biadmin/anaconda2/bin/python2.7'
os.environ["PYSPARK_DRIVER_PYTHON"] = '/home/biadmin/anaconda2/bin/python2.7'

此外,尝试设置 --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=/home/biadmin/anacond‌ a2/bin/python2.7

Container: container_e09_1477084339086_0508_02_000001 on bi4c-xxxxxx-data-1.bi.services.bluemix.net_45454
==========================================================================================================
LogType:stderr
...
java.io.IOException: Cannot run program "/home/biadmin/anaconda2/bin/python2.7": error=2, No such file or directory

但是,

[biadmin@bi4c-xxxxxx-mastermanager ~]$ ssh bi4c-xxxxxx-data-1.bi.services.bluemix.net
[biadmin@bi4c-xxxxxx-data-2 ~]$ ls /home/biadmin/anaconda2/bin/python2.7
/home/biadmin/anaconda2/bin/python2.7

最佳答案

你是对的,PYSPARK_PYTHON 不会那样工作。

您可以尝试在启动 Spark 上下文之前在您的脚本中添加此命令行:

os.environ["PYSPARK_PYTHON"] = '/home/biadmin/anaconda2/bin/python2.7'
os.environ["PYSPARK_DRIVER_PYTHON"] = '/home/biadmin/anaconda2/bin/python2.7'

当然,如果你的anaconda路径是上面这个,如果不是你需要把这个添加到你的worker中去work,或者改变anaconda在每个work中的路径。

关于apache-spark - PYSPARK_PYTHON 适用于 --deploy-mode 客户端但不适用于 --deploy-mode 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41288053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com