我寫(xiě)這篇小博客的由來(lái):
前天我修改我Ubuntu的用戶(hù)名名稱(chēng),改成別人的名字縮寫(xiě),這樣就可以方便他截圖交作業(yè)了。但沒(méi)想到的是,修改個(gè)用戶(hù)名居然導(dǎo)致我虛擬機(jī)不能正常開(kāi)機(jī)。而且還比較麻煩,不像修改主機(jī)名一樣簡(jiǎn)單。無(wú)奈之下只好重裝系統(tǒng),重頭部署大數(shù)據(jù)環(huán)境,我想著之前有安裝過(guò)所有環(huán)境經(jīng)驗(yàn),應(yīng)該一個(gè)小時(shí)之內(nèi)可以完成的。一開(kāi)始安裝Hadoop,hive,hbase,spark很順利。但是到了pyspark時(shí)候已經(jīng)折騰我大半天了。同樣的電腦,同樣的操作,遇到了我之前沒(méi)遇到過(guò)的問(wèn)題。我覺(jué)得安裝大數(shù)據(jù)感覺(jué)是一門(mén)玄學(xué)。也給我血痛的教訓(xùn),不要順便修改用戶(hù)名,搞不好會(huì)死機(jī)的。
問(wèn)題描述
- python環(huán)境3.8.10 spark版本2.4.4 pyspark版本2.4.4
我的linux自帶python環(huán)境是3.8.10 里面沒(méi)有自帶pip 于是就先下載pip
sudo apt install python3-pip
接著下載pyspark
sudo pip install pyspark
接著啟動(dòng)pyspark
好了報(bào)錯(cuò),上網(wǎng)查看錯(cuò)誤原因,網(wǎng)上說(shuō)pyspark2.4.4不支持python3.8以上的環(huán)境(巧了我正好是版本pyspark是2.4.4而python是3.8.),只需要降低python版本就可以了。
接著下載安裝python3.6,在安裝python3.6之前 首先需要先下載兩個(gè)環(huán)境依賴(lài)
apt-get install gcc 安裝c++解釋器
還有個(gè)解壓包
sudo apt-get -y install zlib*
不下載這個(gè)解壓包到后面make install過(guò)程中你會(huì)報(bào)一個(gè)錯(cuò)誤
zipimport.ZipImportError: can’t decompress data; zlib not available,報(bào)錯(cuò)內(nèi)容意思是:無(wú)法解壓縮數(shù)據(jù);zlib不可用
- 下載python3.6
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
解壓Python文件
tar -zvxf Python-3.6.1.tgz
進(jìn)入Python3.6文件
cd Python3.6
先創(chuàng)建python3.6文件夾,主要用來(lái)把所有編譯安裝好文件放在這里方便管理。系統(tǒng)自帶的python文件都是東放一個(gè)西放一個(gè)
sudo mkdir /usr/local/python3.6
接著配置文件指定安裝到那個(gè)目錄(要進(jìn)入python3.6文件夾才能輸入下面命令)
./configure --prefix=/usr/local/python3.6
編譯(又是一個(gè)漫長(zhǎng)的編譯安裝過(guò)程)
make 編譯
編譯成功會(huì)出現(xiàn)這樣提示
安裝
sudo make install
接著將編譯安裝好的python3.6解釋器放在系統(tǒng)的bin目錄(也可以不要用放,但是,你要配置環(huán)境變量) 這一步要注意,我當(dāng)時(shí)進(jìn)入$/usr/local/python3.6/bin 用著相對(duì)路徑 ln -s python3.6 /usr/bin/python3.6 結(jié)果啟動(dòng)失敗,所以你一定要用絕對(duì)路徑 ln -s ./python3.6 /usr/bin/python3.6 或者下面第一條
sudo ln -s /usr/local/python3.6/bin/python3.6 /usr/bin/python3.6
sudo ln -s /usr/loacl/python3.6/bin/pip3.6 /usr/bin/pip3.6
這里注意python3.6自帶pip 而python3.5是沒(méi)有的。而且其實(shí)我一開(kāi)始安裝python3.5過(guò)程中編譯安裝過(guò)程不是很順利,可能是python3.5所需依賴(lài)的環(huán)境比較多。所有建議安裝python3.6
輸入python3.6 出現(xiàn)下面表示安裝成功了。
輸入python3
-
在此之前我還用到應(yīng)該問(wèn)題 啟動(dòng)python3.6 時(shí)候報(bào)錯(cuò)
報(bào)錯(cuò)內(nèi)容:-bash: /usr/lib/command-not-found:/usr/bin/python3:解釋器錯(cuò)誤: 沒(méi)有那個(gè)文件或目錄
我當(dāng)時(shí)忘記怎么解決了,總之把之前python文件刪除注意別把系統(tǒng)自帶的python文件刪除了。重新裝嚴(yán)格按照上面來(lái)應(yīng)該就不會(huì)有問(wèn)題。 -
這樣就有兩個(gè)python環(huán)境 輸入python3 (系統(tǒng)自帶)就使用python3.8 輸入python3.6就使用python3.6解釋器 也可以將python3 指向python ln -s /usr/bin/python3 /usr/bin/python 你輸入python就使用python3.8解釋器
接著修改spark配置文件
將pyspark選擇的python版本選擇python3.6
再次啟動(dòng)pyspark
好了又報(bào)錯(cuò),以往之前這樣就可以成功了,但是這次不行。都說(shuō)了是一門(mén)玄學(xué)。報(bào)錯(cuò)的內(nèi)容意思是 你python里面沒(méi)有安裝py4j模塊
那怎么辦? 那就安裝py4j模塊咯
> pip3.6 install py4j
這里注意 如果pip3 instal py4j 你就把py4j庫(kù)安裝到python3.8那文件里面的。但是我們需要用python3.6來(lái)運(yùn)行pyspark,所以要把py4j安裝到pip3.6
用pip3 下載的庫(kù)會(huì)放到python3.8 pip下載的庫(kù)就放到python3.6
回歸主題 接下來(lái)安裝時(shí)又報(bào)了個(gè)錯(cuò)誤
報(bào)錯(cuò)內(nèi)容如下
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting py4j
Could not fetch URL https://pypi.python.org/simple/py4j/: There was a problem confirming the ssl certificate: Can’t connect to HTTPS URL because the SSL module is not available. - skipping
Could not find a version that satisfies the requirement py4j (from versions: )
No matching distribution found for py4j
這段報(bào)錯(cuò)內(nèi)容翻譯過(guò)來(lái)簡(jiǎn)單來(lái)說(shuō)就是 無(wú)法下載py4j。原因在于需要ssl/tls證書(shū),但是這兩個(gè)證書(shū)在python3.6是不可用的。
接著我用python3.8 去下載pip3 install py4j 發(fā)現(xiàn)可以。但是對(duì)我來(lái)說(shuō)沒(méi)用。
上網(wǎng)尋找辦法
都說(shuō)安裝openssl 就可以了 但是出現(xiàn)無(wú)法定位包e:openssl-devel 我換了網(wǎng)址鏡像修改/etc/apt/sources.list鏡像網(wǎng)站還是不行
apt-get install openssl-devel
最后找到辦法
pip install py4j -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pyspark啟動(dòng)成功
參考文章
https://blog.csdn.net/weixin_43837883/article/details/89606425
https://blog.csdn.net/SevenBerry/article/details/121088835
https://blog.csdn.net/qq_41842588/article/details/117857189
總之挺坎坷的。寫(xiě)于----2022年10/11 秋 17:45 心情:差(昨天科目三剛掛)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-459914.html
保持饑餓,保持愚蠢 —Steve Jobs文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-459914.html
到了這里,關(guān)于記安裝pyspark遇到問(wèn)題已經(jīng)解決問(wèn)題的全過(guò)程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!