Spark:安裝及環(huán)境配置指南
本文主要介紹一下spark的安裝及環(huán)境配置。
1、Apache spark下載
在瀏覽器輸入網(wǎng)址
https://spark.apache.org/downloads.html進(jìn)入spark的下載頁面,如下圖所示:

下載時(shí)需要注意的是在第1步選擇完spark版本之后的第2步“choose a package type ”時(shí),spark與hadoop版本必須配合使用。因?yàn)閟park會(huì)讀取hdfs文件內(nèi)容而且spark程序還會(huì)運(yùn)行在HadoopYARN上。所以必須按照我們目前安裝的hadoop版本來選擇package type。我們目前使用的hadoop版本為hadoop2.7.5,所以選擇Pre-built for Apache Hadoop 2.7 and later。
點(diǎn)擊第3步Download Spark后的連接
spark-2.1.2-bin-hadoop2.7.tgz進(jìn)入下圖所示的頁面。在國內(nèi)我們一般選擇清華的服務(wù)器下載,這下載速度比較快,連接地址

2、安裝spark
通過WinSCP將
spark-2.1.2-bin-hadoop2.7.tgz上傳到master虛擬機(jī)的Downloads目錄下,然后解壓到用戶主目錄下并更改解壓后的文件名(改文件名目的是名字變短,容易操作)。解壓過程需要一點(diǎn)時(shí)間,耐心等待哈。

解壓完成后通過ls命令查看當(dāng)前用戶主目錄,如下圖所示增加了spark-2.1.2-bin-hadoop2.7文件目錄

通過mv命令更改spark-2.1.2-bin-hadoop2.7名為spark

3、配置spark環(huán)境變量
通過命令vim .bashrc編輯環(huán)境變量

在文件末尾增加如下內(nèi)容,然后保存并退出

重新加載環(huán)境變量配置文件,使新的配置生效(僅限當(dāng)前終端,如果退出終端新的環(huán)境變量還是不能生效,重啟虛擬機(jī)系統(tǒng)后變可永久生效)

通過spark-shell展示spark是否正確安裝,Spark-shell是添加了一些spark功能的scala REPL交互式解釋器,啟動(dòng)方式如下圖所示。啟動(dòng)過程中會(huì)打印spark相關(guān)信息如版本。

退出spark-shell使用命令:quit

4、在其他節(jié)點(diǎn)安裝spark
在master節(jié)點(diǎn)安裝完成后只需復(fù)制spark文件目錄及.bashrc文件到其他節(jié)點(diǎn)即可,具體操作命令可按下圖操作



最后重啟slave1、slave2即可使配置文件生效。到這里spark安裝完成,接下來就是根據(jù)spark運(yùn)行模式來配置spark相關(guān)配置文件使集群正常工作。
5、配置spark相關(guān)文件
第一步:spark-env.sh文件
通過環(huán)境變量配置確定的Spark設(shè)置。環(huán)境變量從Spark安裝目錄下的conf/spark-env.sh腳本讀取。
可以在spark-env.sh中設(shè)置如下變量:

Spark相關(guān)配置

首先開啟三個(gè)虛擬機(jī)master 、slave1、slave2,接下來在master主機(jī)上配置,配置完成之后將spark/conf發(fā)送到其他節(jié)點(diǎn)即可。
我們先跳轉(zhuǎn)到spark/conf目錄下看看我們需要配置哪些文件。如下圖所示通過ls命令查看文件列表,我們今天主要用到的有spark-env.sh.template、slaves.template,我們還可以用log4j.properties.template來修改輸出信息。

注意,當(dāng)Spark安裝時(shí),conf/spark-env.sh默認(rèn)是不存在的。你可以復(fù)制
conf/spark-env.sh.template創(chuàng)建它。

通過vim編輯器編輯spark-env.sh,在終端中我們可以只輸入前幾個(gè)字母然后按tab鍵來給我們自動(dòng)補(bǔ)全。

在文件末尾添加如下內(nèi)容,保存并退出

第二步:log4j.properties
spark在啟動(dòng)過程中會(huì)有大量日志信息打印出來,如果我們只想看警告或者錯(cuò)誤,而不是一般信息可以在log4j.properties中設(shè)置,同樣的spark為我們提供了一個(gè)模板文件,需要通過模板復(fù)制出log4j.properties

設(shè)置方法為將文件第二行INFO改為WARN

更改完成后文件內(nèi)容如下圖所示,記得保存并退出。

第三步:slaves文件
slaves文件主要作用是告訴spark集群哪些節(jié)點(diǎn)是工作節(jié)點(diǎn)worker,這里slaves文件也需要由模板文件復(fù)制過來,操作如下圖所示

使用vim編輯器編輯slaves

文件中輸入如下內(nèi)容,表示工作節(jié)點(diǎn)為slave1和slave2,保存并退出。

最后將spark/conf目錄移動(dòng)到slave1 slave2節(jié)點(diǎn)spark目錄下,操作如下圖所示

現(xiàn)在就可以啟動(dòng)集群了,先啟動(dòng)hadoop集群(也可以不用hadoop,但是在實(shí)際應(yīng)用中大部分spark還是會(huì)用到hadoop的資源管理YARN)再啟動(dòng)spark集群,操作如下所示。

通過jps查看啟動(dòng)的進(jìn)程,在master節(jié)點(diǎn)上spark的進(jìn)程是Master,在slave節(jié)點(diǎn)上spark相關(guān)進(jìn)程是Worker。

停止集群時(shí)要先停止spark集群

再停止hadoop集群

spark相關(guān)的內(nèi)容就到這里,關(guān)于spark的詳細(xì)應(yīng)用會(huì)有單獨(dú)系列文章介紹,敬請期待。