PySpark+Prophet
目錄
一.背景
二.制作Prophet離線環(huán)境
2.1 下載Miniconda3 linux安裝包并安裝
2.2 安裝python3.7(Prophet不支持3.8)虛擬環(huán)境及Prophet
2.2.1 問(wèn)題一:使用清華源安裝失敗
2.3 制作壓縮虛擬環(huán)境fbprophet.tar.gz包
2.4 使用fbprophet離線包
三.PySpark中使用指定的python版本
3.1 方法一:所有節(jié)點(diǎn)部署離線環(huán)境
3.2 方法二:僅在driver所在節(jié)點(diǎn)部署離線環(huán)境
四.PySpark開(kāi)發(fā)環(huán)境準(zhǔn)備
4.1 下載 spark版本包
一.背景
Prophet在單機(jī)python環(huán)境下運(yùn)行比較慢,python對(duì)數(shù)據(jù)的處理性能不高。
另一方面,生產(chǎn)環(huán)境沒(méi)有連接外網(wǎng),且每臺(tái)服務(wù)器都去外網(wǎng)下載相關(guān)的安裝包也比較費(fèi)時(shí)。
再者,生產(chǎn)環(huán)境中僅有python2.7.5,對(duì)Prophet的依賴不友好。
?
二.制作Prophet離線環(huán)境
制作離線環(huán)境時(shí),需要在能連上外網(wǎng)的環(huán)境制作,并且制作機(jī)的操作系統(tǒng)應(yīng)該和使用離線包的操作系統(tǒng)一致。
2.1 下載Miniconda3 linux安裝包并安裝
?
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh?
下載完成后運(yùn)行安裝腳本,安裝Miniconda,按照提示操作:閱讀協(xié)議,指定安裝目錄,以及是否初始化conda。
2.2 安裝python3.7(Prophet不支持3.8)虛擬環(huán)境及Prophet
?
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes conda config --show conda create --name fbprophet python=3.7 conda activate fbprophet # 退出當(dāng)前環(huán)境 conda deactivate #刪除已有環(huán)境 conda remove --name python37 --all conda install -c conda-forge fbprophet?
2.2.1 問(wèn)題一:使用清華源安裝失敗
報(bào)錯(cuò)如下:
?
json.decoder.JSONDecodeError: Unterminated string starting at:?
原因是add channels操作導(dǎo)致的
解決方案,刪除該源
?
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/?
2.3 制作壓縮虛擬環(huán)境fbprophet.tar.gz包
Prophet安裝包比較大,整個(gè)環(huán)境大概1G,壓縮成gzip包后大概300MB左右。
?
tar -zcvf fbprophet.tar.gz fbprophet/ (fbprophet) [root@dev envs]# ls fbprophet fbprophet.tar.gz?
2.4 使用fbprophet離線包
解壓fbprophet.tar.gz包到/opt/software目錄下,使用全路徑運(yùn)行detect.py(prophet應(yīng)用程序)。
?
tar -zxvf fbprophet.tar.gz[root@dev software]$ ls |grep fb fbprophet fbprophet.tar.gz#測(cè)試是否可用 /opt/software/fbprophet/bin/python detect.py?
?
三.PySpark中使用指定的python版本
3.1 方法一:所有節(jié)點(diǎn)部署離線環(huán)境
將壓縮包解壓到所有節(jié)點(diǎn)的/opt/software/目錄下。然后通過(guò)spark.pyspark.python和spark.pyspark.driver.python兩個(gè)配置來(lái)指定executor和driver對(duì)應(yīng)的python命令。
可以修改{spark_home}/spark-defaults.conf文件(有概率不生效)或者通過(guò)命令行方式傳入。
?
pyspark --conf spark.pyspark.python=/opt/software/fbprophet/bin/python --conf spark.pyspark.driver.python=/opt/software/fbprophet/bin/python?
3.2 方法二:僅在driver所在節(jié)點(diǎn)部署離線環(huán)境
將fbprophet.tar.gz包上傳到hdfs。
?
hadoop fs -put fbprophet.tar.gz /user/work/?
指定配置如下(#代表軟連接)
?
pyspark --conf spark.pyspark.python=fbprophet/bin/python --conf spark.pyspark.driver.python=/opt/software/fbprophet/bin/python --conf spark.yarn.dist.archives=/user/work/fbprophet.tar.gz#fbprophet?
?
四.PySpark開(kāi)發(fā)環(huán)境準(zhǔn)備
參考文章:
https://blog.csdn.net/qq_36330643/article/details/78429109
4.1 下載 spark版本包
在下面地址下載對(duì)應(yīng)的版本包
?
https://archive.apache.org/dist/spark/spark-2.3.2/spark-2.3.2-bin-without-hadoop.tgz?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的PySpark+Prophet的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 标准功能模块组件 -- 内部联络单组件,
- 下一篇: 金山词霸2009牛津版(Sp1破解补丁)