怎么讓CDSW的PySpark自動(dòng)適配Python版本

今天就跟大家聊聊有關(guān)怎么讓CDSW的PySpark自動(dòng)適配Python版本,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到鎮(zhèn)雄網(wǎng)站設(shè)計(jì)與鎮(zhèn)雄網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋鎮(zhèn)雄地區(qū)。


   

在CDH集群中Spark2的Python環(huán)境默認(rèn)為Python2,CDSW在啟動(dòng)Session時(shí)可以選擇Engine Kernel版本Python2或者Python3。當(dāng)選擇Python3啟動(dòng)Session時(shí),開(kāi)發(fā)PySpark作業(yè)在運(yùn)行時(shí)會(huì)報(bào)“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版本適配的問(wèn)題,需要進(jìn)行如下調(diào)整來(lái)使我們的應(yīng)用自動(dòng)的適配Python版本。

集群部署多個(gè)Python版本    

   

基于CDH提供的Anaconda Parcels包來(lái)安裝Python,通過(guò)在CDH集群同時(shí)安裝兩個(gè)Python版本的Parcel包來(lái)解決多個(gè)版本的問(wèn)題。如果需要在Spark中默認(rèn)的支持Python2或者Python3版本則激活相應(yīng)版本的Parcel即可,在我的集群默認(rèn)激活的為Python2版本的Parcel包,在接下來(lái)的操作主要介紹Python3的環(huán)境準(zhǔn)備。

怎么讓CDSW的PySpark自動(dòng)適配Python版本

Spark2默認(rèn)使用的Python2環(huán)境變量

怎么讓CDSW的PySpark自動(dòng)適配Python版本

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服務(wù)上

怎么讓CDSW的PySpark自動(dòng)適配Python版本

4.使用管理員賬號(hào)登錄Cloudera Manager進(jìn)入Parcel包管理界面配置Anaconda地址

怎么讓CDSW的PySpark自動(dòng)適配Python版本

5.完成Parcel地址配置后完成對(duì)應(yīng)版本Parcel包的下載分配即可

怎么讓CDSW的PySpark自動(dòng)適配Python版本

上述操作不需要激活,在不激活的情況下PySpark默認(rèn)使用的Python2環(huán)境,如果激活則使用的是Python3環(huán)境。

6.確認(rèn)集群所有節(jié)點(diǎn)已存在Python2和Python3的環(huán)境

怎么讓CDSW的PySpark自動(dòng)適配Python版本

CDSW自動(dòng)為Spark適配Python版本    

   

為了能讓我們的Pyspark程序代碼自動(dòng)適配到不同版本的Python,需要在我們的Spark代碼初始化之前進(jìn)行環(huán)境的初始化,在代碼運(yùn)行前增加如下代碼實(shí)現(xiàn)適配不同版本的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'

怎么讓CDSW的PySpark自動(dòng)適配Python版本

驗(yàn)證程序自動(dòng)適配Python版本    

   

1.選擇Python2環(huán)境啟動(dòng)Session

怎么讓CDSW的PySpark自動(dòng)適配Python版本

2.運(yùn)行PySpark作業(yè)測(cè)試正常運(yùn)行

怎么讓CDSW的PySpark自動(dòng)適配Python版本

3.選擇Python3環(huán)境啟動(dòng)Session

怎么讓CDSW的PySpark自動(dòng)適配Python版本

4.運(yùn)行PySpark作業(yè)測(cè)試正常運(yùn)行

怎么讓CDSW的PySpark自動(dòng)適配Python版本

總結(jié)    

在集群中同時(shí)部署多個(gè)版本的Python,通過(guò)在Pyspark代碼中使用Python命令動(dòng)態(tài)的指定PYSPARK_PYTHON為我們需要的Python環(huán)境即可。

看完上述內(nèi)容,你們對(duì)怎么讓CDSW的PySpark自動(dòng)適配Python版本有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

分享標(biāo)題:怎么讓CDSW的PySpark自動(dòng)適配Python版本
文章來(lái)源:http://bm7419.com/article0/jdcsio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、定制網(wǎng)站、App設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站服務(wù)器托管、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)