Hadoop streaming使用自定義python版本和第三方庫


在使用Hadoop的過程中,遇到了自帶python版本比較老的問題.

下面以python3.7為例,演示如何在hadoop上使用自定義的python版本以及第三方庫.

1.在https://www.python.org下載Python-3.7.2.gz包

2.在linux環境下:

tar -xvf Pthon-3.7.2 #解壓文件
cd Python-3.7.2 
./configure -- prefix=~/python37 #這里是你剛剛解壓的路徑
make -j
make install

3.這樣就生成了一個python37文件夾

4.在本地python安裝路徑的site-packages中(你的包管理工具不同,本地包安裝路徑也不同)復制自己需要的第三方庫的文件,放入python37/lib/python3.7/site-packages中

5.在linux環境下:

cd /home/username #路徑可以自選
tar czf python37.tar.gz python37 #打包成tar.gz文件 
${HADOOP_HOME}/bin/hadoop dfs -copyFromLocal python37.tar.gz username/python37.tar.gz #上傳到HADOOP

6.將這個包含第三方庫的python37.tar.gz文件上傳到hadoop上

7.在mapreduce的sh腳本中用如下代碼使用剛剛上傳的python環境

PYTHON_DEPEND=username/python37.tar.gz #剛剛上傳的hadoop中對應地址
depend_python="${PYTHON_DEPEND}"
${HADOOP_BIN} streaming \
    -cacheArchive "${depend_python}#python" \
    -input "${INPUT_PATH}" \
    -output "${OUTPUT_PATH}" \
    -mapper "python/python37/bin/python3 mapper.py"

reducer也是同理~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM