天天看點

《Spark核心技術與進階應用》——2.2節Spark部署

本節書摘來自華章社群《spark核心技術與進階應用》一書中的第2章,第2.2節spark部署,作者于俊 向海 代其鋒 馬海平,更多章節内容可以通路雲栖社群“華章社群”公衆号檢視

2.2 spark部署

spark部署主要包括local模式部署、standalone模式部署、yarn模式部署、mesos模式部署(參考官方文檔)。

其中,叢集部署模式如下:

獨立部署模式:spark自帶的一種簡單叢集管理器,使用該叢集管理器可以輕松地建立一個叢集;

apache mesos:一個通用的叢集管理器,該叢集管理器也可以運作mapreduce和服務應用(實際業務沒有采取該種架構,本書沒有對該模式進行專門講解,如需要了解,請參考官方文檔);

hadoop yarn:hadoop 2中的資料總管,是目前主要使用的資料總管。

除此之外,spark的ec2啟動腳本使得在amazon ec2上啟動一個獨立模式叢集變得容易。

2.2.1 local模式部署

local(本地)模式下部署spark應用程式比較簡單,可以用于檢測spark是否編譯安裝成功,需要配置java環境變量和設定主節點。

主節點設定步驟如下:

1)進入spark主程式的conf目錄,執行:cd spark-1.5.0/conf。

2)以spark-env.sh.template檔案為模闆建立spark-env.sh檔案。

3)修改spark-env.sh配置檔案:

4)版本驗證,在安裝完畢spark并配置環境變量之後,在任意目錄下運作spark-shell指令即可進入spark指令行模式,此時出現的大段文字中會提示目前的spark版本,例如:

2.2.2 standalone模式部署

部署standalone模式spark叢集步驟如下:

1)修改spark-env.sh配置檔案(參考本地部署模式)。

支援啟動一個或更多的worker,然後通過下面的指令與master連接配接:

./bin/spark-class org.apache.spark.deploy.worker.worker park:// ip:port

2.?腳本啟動叢集

檢查spark目錄下的conf/slaves檔案是否建立,是否包含了所有工作節點機器的hostname,一旦建立了這個檔案,就可以通過下面的shell腳本在master節點上啟動或終止你的叢集。

執行cd /spark-1.5.0/sbin指令進入sbin檔案夾,執行./start-all.sh可以啟動所有伺服器上的spark相關程序。

執行jps指令可以檢視目前伺服器正在運作的程序。如果是主節點,可以看到master程序;如果是子節點,可以看到worker程序。這樣就表示spark在伺服器上全部配置完畢。

可以通過設定spark-env.sh中的環境變量進一步配置叢集,并複制到所有的worker機器上以使設定生效,表2-2為可配置的spark-env.sh中的環境變量。

《Spark核心技術與進階應用》——2.2節Spark部署

2.2.3 yarn模式部署

下面來具體講解如何基于yarn配置spark程式。

(1)準備工作

配置spark之前,需要做一些準備工作。

首先,檢查hosts檔案,即使用root賬戶登入伺服器之後,在任意目錄下執行vim /etc/hosts指令,檢視需要部署spark的“伺服器ip機器名”是否已存在,沒有請添加。

其次,添加配置檔案,同樣是在任意目錄下執行vim /etc/prof?ile,打開環境變量配置檔案,将spark_home配置到環境變量中,具體如下所示。

然後,在任意目錄下執行source /etc/prof?ile指令讓環境變量生效。

(2)spark本身的配置

接下來就是針對spark本身的配置。

首先,進入spark中的conf檔案夾,即在spark所在目錄執行cd/spark-1.5.0/conf指令。打開spark-env.sh檔案,即vim spark-env.sh,添加:

最後,需要将spark-1.5.0檔案夾、環境變量配置檔案和hosts檔案批量發送到配置的各個子節點的伺服器上,再批量執行source /etc/prof?ile指令即可。

按照先啟動hadoop,再啟動spark的順序進行啟動。

繼續閱讀