0772-1.7.2-如何让CDSW的PySpark自动适配Python版本
文档编写目的
在CDH集群中Spark2的Python环境默认为Python2 , CDSW在启动Session时可以选择Engine Kernel版本Python2或者Python3 。 当选择Python3启动Session时 , 开发PySpark作业在运行时会报“Python in worker has different version 2.7 than that in driver 3.6, PySpark cannot run with different minor versions.Please check environment variables PYSPARK_PYTHON and PYSPARK_DRIVER_PYTHON are correctly set” , 为解决Python版本适配的问题 , 需要进行如下调整来使我们的应用自动的适配Python版本 。
集群部署多个Python版本
基于CDH提供的Anaconda Parcels包来安装Python , 通过在CDH集群同时安装两个Python版本的Parcel包来解决多个版本的问题 。 如果需要在Spark中默认的支持Python2或者Python3版本则激活相应版本的Parcel即可 , 在我的集群默认激活的为Python2版本的Parcel包 , 在接下来的操作主要介绍Python3的环境准备 。
本文插图
Spark2默认使用的Python2环境变量
本文插图
1.Python2版本的Anaconda下载地址如下:
https://repo.anaconda.com/pkgs/misc/parcels/Anaconda-2019.07-el7.parcel https://repo.anaconda.com/pkgs/misc/parcels/Anaconda-2019.07-el7.parcel.sha https://repo.anaconda.com/pkgs/misc/parcels/manifest.json
2.Python3版本的Anaconda下载地址如下:
https://repo.anaconda.com/pkgs/misc/parcels/archive/Anaconda-5.1.0.1-el7.parcel https://repo.anaconda.com/pkgs/misc/parcels/archive/Anaconda-5.1.0.1-el7.parcel.sha https://repo.anaconda.com/pkgs/misc/parcels/archive/manifest.json
3.将下载好的parcel包部署到集群的私有HTTP服务上
本文插图
4.使用管理员账号登录Cloudera Manager进入Parcel包管理界面配置Anaconda地址
本文插图
5.完成Parcel地址配置后完成对应版本Parcel包的下载分配即可
本文插图
上述操作不需要激活 , 在不激活的情况下PySpark默认使用的Python2环境 , 如果激活则使用的是Python3环境 。
6.确认集群所有节点已存在Python2和Python3的环境
本文插图
CDSW自动为Spark适配Python版本
为了能让我们的Pyspark程序代码自动适配到不同版本的Python , 需要在我们的Spark代码初始化之前进行环境的初始化 , 在代码运行前增加如下代码实现适配不同版本的Python 。
import os py_environ=os.environ['CONDA_DEFAULT_ENV'] if py_environ=='python2.7': os.environ['PYSPARK_PYTHON'] = '/opt/cloudera/parcels/Anaconda/bin/python' else: os.environ['PYSPARK_PYTHON'] = '/opt/cloudera/parcels/Anaconda-5.1.0.1/bin/python'
本文插图
验证程序自动适配Python版本
1.选择Python2环境启动Session
推荐阅读
- 传奇英雄▲荒野乱斗:最值得培养的传奇英雄,微氪玩家如何选择?
- 【】财鑫闻丨两市成交量连续2日破万亿,牛市真的来了?下一步如何擒“牛”?
- 精选泛科技|结果如何?,一加8续航遭质疑:上半年最全机型横评出炉
- 健康干货桶|重症肝病患者可否活动?如何掌握?
- 精选泛科技一加8续航遭质疑:上半年最全机型横评出炉,结果如何?
- 「孙权」孙策逝世后,弟弟孙权是如何对待20岁嫂子大桥的?说出来别不信
- 科学家■如果宇宙由奇点大爆炸而来,那么奇点又是如何来的?
- 娱娱乐道|厚嘴唇加大饼脸,网友:她是如何火的?,杨超越大量旧照曝光
- “健康北京”微信公众号|新型冠状病毒肺炎确诊病例如何分型?北京中医医院院长解答
- 央视网|上直播、转内销……外贸企业如何突围?
