关于pyspark 使用过程中需要python版本不同的需求
2017-12-20 10:37
991 查看
最近碰到了一个问题,挺有意思,是在使用spark过程中需要用到pyspark,而本地接口机的python版本太低,只有python 2.6版本,需求需要python 2.7版本甚至python 3版本。
但是在使用过程中不允许修改主机自带的python。
怎么办呢。只能手动下载指定。其中又分为 anaconda 版本的python,还有直接python官网下载python包安装。
其中anaconda又分为 parcel 版的,还有.sh安装版本。
首先说一下使用python 官网下载python包安装的方式。
下载地址:
https://www.python.org/download/releases/2.7/
然后安装这个python
之后就是需要在运行spark程序的时候指定了:
spark的deploy-mode一般有两种模式,一个是cluster 模式,一个是client模式
其中client模式需要设置:
PYSPARK_PYTHON=/path/to/python2.7 (可在环境变量中设置,可以在spark-env.sh中设置)
cluster模式需要设置:
spark.yarn.appMasterEnv.PYSPARK_PYTHON=/path/to/python2.7
spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=/path/to/python2.7 (可在运行中临时指定,也可在spark-default.sh中设置)
然后再说一下anaconda版本的python。。这是一个大坑。。奈何做科学计算还有好多人认这个工具。。总是令人不忍放弃,却又心力憔悴。
一开始用anaconda版本的.sh文件安装的。奈何提交clinet模式的时候总是报
Exception
in thread "main" java.io.IOException: Cannot run program "/home/hadoop/Anaconda/bin": error=13, Permission denied
搞了将近一个月,最终还是不行,除非用root用户,或者sudo运行,否则无法正常提交,但是这肯定是不行的
最后使用了cloudera manager 集成了anaconda 的parcel,然后拷贝了这个被集成之后的目录到客户端使用才解决了这个问题
/opt/cloudera/parcels/Anaconda/bin
其他的参数配置跟上面的相同。就是这些:
其中client模式需要设置:
PYSPARK_PYTHON=/path/to/python2.7 (可在环境变量中设置,可以在spark-env.sh中设置)
cluster模式需要设置:
spark.yarn.appMasterEnv.PYSPARK_PYTHON=/path/to/python2.7
spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=/path/to/python2.7 (可在运行中临时指定,也可在spark-default.sh中设置)
但是在使用过程中不允许修改主机自带的python。
怎么办呢。只能手动下载指定。其中又分为 anaconda 版本的python,还有直接python官网下载python包安装。
其中anaconda又分为 parcel 版的,还有.sh安装版本。
首先说一下使用python 官网下载python包安装的方式。
下载地址:
https://www.python.org/download/releases/2.7/
然后安装这个python
tar xzvf Python-2.7.tgz cd Python-2.7 ./configure --prefix=/opt/python make sudo make install
之后就是需要在运行spark程序的时候指定了:
spark的deploy-mode一般有两种模式,一个是cluster 模式,一个是client模式
其中client模式需要设置:
PYSPARK_PYTHON=/path/to/python2.7 (可在环境变量中设置,可以在spark-env.sh中设置)
cluster模式需要设置:
spark.yarn.appMasterEnv.PYSPARK_PYTHON=/path/to/python2.7
spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=/path/to/python2.7 (可在运行中临时指定,也可在spark-default.sh中设置)
然后再说一下anaconda版本的python。。这是一个大坑。。奈何做科学计算还有好多人认这个工具。。总是令人不忍放弃,却又心力憔悴。
一开始用anaconda版本的.sh文件安装的。奈何提交clinet模式的时候总是报
Exception
in thread "main" java.io.IOException: Cannot run program "/home/hadoop/Anaconda/bin": error=13, Permission denied
搞了将近一个月,最终还是不行,除非用root用户,或者sudo运行,否则无法正常提交,但是这肯定是不行的
最后使用了cloudera manager 集成了anaconda 的parcel,然后拷贝了这个被集成之后的目录到客户端使用才解决了这个问题
/opt/cloudera/parcels/Anaconda/bin
其他的参数配置跟上面的相同。就是这些:
其中client模式需要设置:
PYSPARK_PYTHON=/path/to/python2.7 (可在环境变量中设置,可以在spark-env.sh中设置)
cluster模式需要设置:
spark.yarn.appMasterEnv.PYSPARK_PYTHON=/path/to/python2.7
spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=/path/to/python2.7 (可在运行中临时指定,也可在spark-default.sh中设置)
相关文章推荐
- 关于新建应用程序池:原来的缺省池子是2.0的,后来安装4.0框架放4.0程序,需要新建;不同版本用不同的应用池。
- 使用ant将一份源码编译出不同需求的版本
- python3和python2中print的用法有很多不同,python3中需要使用括号
- 关于android版本升级迭代过程中需要注意的问题
- 关于在一套复制环境中使用不同版本OGG的问题
- [python]如何使用virtualenvwrapper切换不同版本的python?
- 关于python语言使用redis时,连接是否需要关闭的问题
- ubuntu下不同版本python安装pip及pip的使用
- 使用pyenv管理不同版本的python
- python2和3使用过程中的(重要)不同点记录
- 关于使用jenv安装管理不同jdk版本
- python之使用__future__(解决版本不同,不兼容问题)
- 使用virtualenv 常见基于不同版本python的独立环境
- 关于在anaconda中切换不同的python版本
- 关于在一套复制环境中使用不同版本OGG的问题
- 关于网络状态改变监听广播的使用(android不同系统版本会有不同)
- [python]如何使用virtualenvwrapper切换 不同版本的python?
- 不同python版本在使用pyserial的一些使用区别
- python 使用不同的版本之间的切换
- 如何使用virtualenvwrapper切换不同版本的python