前篇文章介紹了scala的安裝與配置、接下來介紹一下spark的安裝及環境配置。
1、Apache spark下載
在瀏覽器輸入網址https://spark.apache.org/downloads.html進入spark的下載頁面,如下圖所示:
下載時需要注意的是在第1步選擇完spark版本之後的第2步“choose a package type ”時,spark與hadoop版本必須配合使用。因爲spark會讀取hdfs文件內容而且spark程序還會運行在HadoopYARN上。所以必須按照我們目前安裝的hadoop版本來選擇package type。我們目前使用的hadoop版本爲hadoop2.7.5,所以選擇Pre-built for Apache Hadoop 2.7 and later。
點擊第3步Download Spark後的連接 spark-2.1.2-bin-hadoop2.7.tgz進入下圖所示的頁面。在國內我們一般選擇清華的服務器下載,這下載速度比較快,連接地址如下:
https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.1.2/spark-2.1.2-bin-hadoop2.7.tgz
2、安裝spark
通過WinSCP將spark-2.1.2-bin-hadoop2.7.tgz上傳到master虛擬機的Downloads目錄下,然後解壓到用戶主目錄下並更改解壓後的文件名(改文件名目的是名字變短,容易操作)。解壓過程需要一點時間,耐心等待哈。
解壓完成後通過ls命令查看當前用戶主目錄,如下圖所示增加了spark-2.1.2-bin-hadoop2.7文件目錄
通過mv命令更改spark-2.1.2-bin-hadoop2.7名爲spark
3、配置spark環境變量
通過命令vim .bashrc編輯環境變量
在文件末尾增加如下內容,然後保存並退出
重新加載環境變量配置文件,使新的配置生效(僅限當前終端,如果退出終端新的環境變量還是不能生效,重啓虛擬機系統後變可永久生效)
通過spark-shell展示spark是否正確安裝,Spark-shell是添加了一些spark功能的scala REPL交互式解釋器,啓動方式如下圖所示。啓動過程中會打印spark相關信息如版本。
退出spark-shell使用命令:quit
4、在其他節點安裝spark
在master節點安裝完成後只需複製spark文件目錄及.bashrc文件到其他節點即可,具體操作命令可按下圖操作
最後重啓slave1、slave2即可使配置文件生效。到這裏spark安裝完成,接下來就是根據spark運行模式來配置spark相關配置文件使集羣正常工作。
5、配置spark相關文件
第一步:spark-env.sh文件
通過環境變量配置確定的Spark設置。環境變量從Spark安裝目錄下的conf/spark-env.sh腳本讀取。
可以在spark-env.sh中設置如下變量:
Spark相關配置
首先開啓三個虛擬機master 、slave1、slave2,接下來在master主機上配置,配置完成之後將spark/conf發送到其他節點即可。
我們先跳轉到spark/conf目錄下看看我們需要配置哪些文件。如下圖所示通過ls命令查看文件列表,我們今天主要用到的有spark-env.sh.template、slaves.template,我們還可以用log4j.properties.template來修改輸出信息。
注意,當Spark安裝時,conf/spark-env.sh默認是不存在的。你可以複製conf/spark-env.sh.template創建它。
通過vim編輯器編輯spark-env.sh,在終端中我們可以只輸入前幾個字母然後按tab鍵來給我們自動補全。
在文件末尾添加如下內容,保存並退出
第二步:log4j.properties
spark在啓動過程中會有大量日誌信息打印出來,如果我們只想看警告或者錯誤,而不是一般信息可以在log4j.properties中設置,同樣的spark爲我們提供了一個模板文件,需要通過模板複製出log4j.properties
設置方法爲將文件第二行INFO改爲WARN
更改完成後文件內容如下圖所示,記得保存並退出。
第三步:slaves文件
slaves文件主要作用是告訴spark集羣哪些節點是工作節點worker,這裏slaves文件也需要由模板文件複製過來,操作如下圖所示
使用vim編輯器編輯slaves
文件中輸入如下內容,表示工作節點爲slave1和slave2,保存並退出。
最後將spark/conf目錄移動到slave1 slave2節點spark目錄下,操作如下圖所示
現在就可以啓動集羣了,先啓動hadoop集羣(也可以不用hadoop,但是在實際應用中大部分spark還是會用到hadoop的資源管理YARN)再啓動spark集羣,操作如下所示。
通過jps查看啓動的進程,在master節點上spark的進程是Master,在slave節點上spark相關進程是Worker。
停止集羣時要先停止spark集羣
再停止hadoop集羣
spark相關的內容就到這裏,關於spark的詳細應用會有單獨系列文章介紹,敬請期待。
小提示:每天虛擬機和集羣不用了儘量正常關閉,而不是暴力關閉Vmware軟件。不然集羣容易崩潰😂。