MRS Spark 中使用自编译python

举报
旅程 发表于 2020/05/21 10:03:16 2020/05/21
【摘要】 用户使用spark时,有时会使用python三方插件去完成相应的操作,比如使用redis.py去读取redis的数据。从开源下载python 包一般是不含这些插件的,为了实现相应的功能,用户会去编译包含所需要插件的python。本文介绍如何编译包含插件的python,提供给Spark使用

        用户使用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 \

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。