MRS Spark 中使用自编译python
用户使用spark时,有时会使用python三方插件去完成相应的操作,比如使用redis.py去读取redis的数据。从开源下载python 包一般是不含这些插件的,为了实现相应的功能,用户会去编译包含所需要插件的python。下文介绍如何编译包含插件的python,提供给Spark使用。
## Python 的编译
l 安装依赖包:
yum install zlib zlib-devel openssl openssl-devel -y
出现如下字样,即为安装成功
2. 编译源代码
l 本文以python-2.7.16为例,下载python-2.7.16源码,并编译安装:
1)下载python包
wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz
出现如下进度,则提示下载完成
2)解压源码包
tar -zxvf Python-2.7.16.tgz
3)编译python
cd Python-2.7.16
mkdir /mnt/cdm/python27 (python需要安装的路径)
./configure --prefix=/mnt/cdm/python27/ --enable-unicode=ucs4
make -j8
make install
## 安装需要的自定义plugin,这里以安装redis为例
cd /mnt/cdm/python27
wget https://bootstrap.pypa.io/get-pip.py
./bin/python get-pip.py
./bin/pip2.7 install redis==2.10.6
## 验证redis 插件
./bin/python
import redis
r = redis.StrictRedis(host='xxx.xxx.xxx.xxx', port=xxxxx, db=0)
##打包
zip -r python27.zip python27
## 将压缩包上传到HDFS上
比如将压缩包上传到 /user/python/目录下,根据实际需要上传到对应目录下
## 使用
spark 提交任务时,需要制定python压缩包路径,根据实际需要进行配置
spark xxxx \
--conf spark.pyspark.python=./Python/bin/python27 \
--conf spark.yarn.dist.archives=/user/python/python27.zip#Python \
- 点赞
- 收藏
- 关注作者
评论(0)