Ubuntu搭建Spark運行環境


前言

    因為之前研究的方向是分布式系統,重點放在了Hadoop分布式文件系統上。現如今,社會對機器學習的需求勢如破竹。為了調整研究方向,而且不拋棄原本的研究成果,研究反向便從分布式系統轉為分布式機器學習算法(剛起步,可能這種說法會不太正確)。Spark MLlib是Apache Spark的可擴展的機器學習庫,並提供有Scala,Java,Python的API。Mahout 是 Apache旗下的一個開源項目,提供了一些可擴展的機器學習領域經典算法的實現,旨在幫助開發人員更加方便快捷地創建智能應用程序。Mahout包含許多實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。此外,通過使用 Apache Hadoop 庫,Mahout 可以有效地擴展到雲中。因此,從今往后重點將會放在Spark Mlib和Mahout上。本文着重描述Spark環境的搭建以及環境測試。

1 基本環境搭建

    1.1 環境變量配置

         使用vim編輯環境變量文件:/etc/profile:

1 #install vim 
2 sudo apt-get install vim
3 #edit env. profile
4 sudo vim /etc/profile

        在/etc/profile文件末尾添加如下內容(為了方便以后更深入學習機器學習,以下配置文件包含protobuf,Mahout等配置。注意:各軟件的安裝位置需要按需修改):

 1 #Java env.
 2 export JAVA_HOME=/your_Java_home
 3 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 4 export PATH=$JAVA_HOME/bin:/usr/local/protobuf/bin:$PATH
 5 
 6 #Scala env.
 7 export SCALA_HOME=/your_Scala_home
 8 export PATH=$SCALA_HOME/bin:$PATH
 9 
10 #Spark env.
11 export SPARK_HOME=/your_Spark_home
12 export PATH=$SPARK_HOME/bin:$PATH
13 
14 #Python env.
15 export PYTHONPATH=/your_python_home
16 
17 #Hadoop env.
18 export HADOOP_HOME=/your_hadoop_home
19 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
20 export PATH=$PATH:$HADOOP_HOME/bin
21 export HADOOP_HOME_WARN_SUPPRESS=not_null
22 
23 #Mahout env.
24 export MAHOUT_HOME=/your_Mahout_home
25 export MAHOUT_CONF_DIR=$MAHOUT_HOME/conf
26 export PATH=$MAHOUT_HOME/conf:$MAHOUT_HOME/bin:$PATH

         由於進行Spark基本環境測試時,使用了Hadoop文件操作功能(上傳),另需部署Hadoop偽分布式環境。本文着重描述Spark環境搭建,因此不再贅述Hadoop環境搭建。

2 基本環境測試及結果

    2.1 啟動Hadoop

         首先,進入Hadoop根目錄,如圖紅框所示。

         其次,使用如下命令啟動Hadoop。(備注:注釋行命令也可啟動Hadoop,不過此方法已經被取代了。)

         最后,通過jps查看Hadoop各個組件是否正確啟動。若出現異常,請查閱相關官方文檔。

1 #./sbin/start-all.sh
2 ./sbin/start-dfs.sh

    2.2 啟動Spark

         由於環境變量配置好了,因此直接使用pyspark啟動python shell模式的spark。(官方文檔中提供有Scala模式的spark啟動模式)

         至此,命令行環境搭建已經完畢。可使用官方文檔提供的案例進行測試。注意:需要提前上傳測試文件到HDFS。可查閱相關的Hadoop Shell命令

3 IDE環境搭建

    3.1 Edit Configurations

         紅框是需要注意的地方。

         重點一:需要新建一個空python文件才能進行配置。

         重點二:Environment variables中的PYTHONPATH是配置Spark根目錄下的python。

    3.2 Project Settings

        為了確保測試代碼的庫都完整導入,需要進行Project的Settings修改。

        File->Settings->Project Structure->如圖所示,將spark路徑下的py4j和pyspark庫添加到Add Conetent Root中。(若此步驟之后仍有報錯,可能需要先使用pip install py4j。)

4 IDE環境測試及結果

     4.1 Word Count測試

         重點一:sc位於pyspark.shell中。

         重點二:若textFile指定HDFS上的文件,需要事先上傳測試文件。(官方文檔中寫明,可以使用本地文件)

         重點三:saveAsTextFile將結果存儲到HDFS上時,不能多次存到同一個文件夾。(注意:這個名字是文件夾,結果會有三個文件,或者更多個文件?)

         重點四:Process finished with exit code 0。此時才表示成功執行測試案例。

     4.2 查看測試結果集

         使用Hadoop Shell命令查看wc_output_02文件夾下,存在三個文件。可進一步使用cat命令查看結果。

總結

     整個環境搭建過程中,未遇到特大的問題。官方文檔中提供的Examples可以在命令行中直接使用,但在pycharm上則需要添加部分語句,不過算是比較容易解決的小問題。


免責聲明!

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



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