hadoop與spark搭建及pyspark調用問題

最近趁着有空,在虛擬機裏裝了Ubuntu18.04系統,然後搭建了 hadoop與spark環境,記錄一下。

一、使用的工具版本:

  • jdk-8u241-linux-x64.tar.gz
  • hadoop-2.7.7.tar.gz
  • scala-2.11.8.tar.gz
  • spark-2.4.5-bin-hadoop2.7.gz
  • 沒裝hive,略過
  • Anaconda3-2019.07-Linux-x86_64.sh(使用python版本3.7.3)

二、python問題

問題:系統自帶python3.6.5,軟件更新升級後變成python3.6.9,與Anaconda3使用的python3.7.3不一致,會導致在Anaconda3裏調用pyspark報錯

報錯內容:pyspark調用報錯:Java.io.IOException: Cannot run program “python”: CreateProcess error=2

解決方案:爲了避免升級的麻煩,我是先安裝Anaconda3,安裝完畢後調用命令python、python3,出現的都是python3.7.3,這個沒問題。但是後面調用pyspark報錯了,因爲pyspark默認是3.6.9,Anaconda3用的是python3.7.3,兩個python版本不一樣造成衝突,Anaconda3裏pyspark無法找到python。所以安裝完Anaconda3之後,再建立個軟鏈接:

ln -s  /home/用戶名/anaconda3/bin/python3.7   /usr/bin/python

建立完成後,在ubuntu用戶系統配置文件.bashrc中加入並使之生效:

export PYSPARK_PYTHON=/usr/bin/python

我在spark配置文件spark-env.sh裏也加入了上述語句

pyspark測試語句:

import os
os.environ['JAVA_HOME']='/home/用戶名/opt/java/jdk1.8.0_241'
from pyspark.sql import SparkSession

spark = SparkSession.builder.appName('first_app_try').getOrCreate()
df = pd.DataFrame([[11, 12, 13], [14, 15,16]], index=['A1','A2'], columns=['c1', 'c2','c3'])

spark_data = spark.createDataFrame(df)
spark_data.show() # 上面的報錯由這句引起,建立軟鏈接之後正常執行
print('successful')

三、安裝hadoop與spark參考文章

  1. Ubuntu 18.04下搭建單機Hadoop和Spark集羣環境

    https://www.linuxidc.com/Linux/2019-12/161628.htm

  2. linux上搭建單機版hadoop和spark
    https://www.cnblogs.com/traditional/p/11297049.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章