天天看點

《Spark Cookbook 中文版》一1.5 在叢集上以獨立模式部署Spark

本節書摘來異步社群《spark cookbook 中文版》一書中的第1章,第1.5節,作者: 【印度】rishi yadav(亞達夫)譯者: 顧星竹 , 劉見康 責編: 胡俊英,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

在分布式環境中的計算資源需要管理,使得資源使用率高,每個作業都有公平運作的機會。spark有一個便利的被稱為獨立模式的自帶叢集管理器。spark也支援使用yarn或者mesos做為叢集管理器。

選擇叢集處理器時,主要需要考慮延遲以及其他架構,例如mapreduce,是否共享同樣的計算資源池。如果你的叢集運作着舊有的mapreduce作業,并且這些作業不能轉變為spark作業,那麼使用yarn作為叢集管理器是個好主意。mesos是一種新興的、友善跨平台管理作業的、與spark非常相容的資料中心作業系統。

如果spark是你的叢集的唯一架構,那麼獨立模式就足夠好用了。随着spark技術的發展,你會看到越來越多的spark獨立模式被用于處理所有的大資料計算需求。例如,目前有些作業可能在使用apache mahout,因為mllib目前沒有作業所需要的特定的機器學習庫。隻要mllib包含了這些庫,這些特定的作業就可以移動到spark了。

讓我們以由6個節點組成的一個叢集的設定為例,包含一個主節點和5個從節點(在你的實際叢集中以真實的名字替換它們)。

主節點

從節點

1.因為spark的獨立模式是預設的,是以你需要做的就是在所有主節點和從節點上安裝spark二進制檔案。把/opt/infoobjects/spark/sbin放到每個節點的路徑中。

2.開啟獨立主伺服器(先ssh到主節點)。

從節點連接配接主節點的預設端口是7077,8088是它的網頁界面端口。

3.請ssh到主節點去開啟從節點,主從節點之間的細粒度配置參數如表1-3所示。

《Spark Cookbook 中文版》一1.5 在叢集上以獨立模式部署Spark

4.不僅可以手動啟動主從節點的守護程度,還可以使用叢集啟動腳本來完成。

5.首先,在主節點建立conf/slaves檔案夾,并加入每一個從節點的主機名(本例有5個從節點,在實際操作中使用你自己從節點的dns替換它們)。

一旦從節點設定好了,你就可以使用如下腳本開啟或停止叢集,如表1-4所示。

《Spark Cookbook 中文版》一1.5 在叢集上以獨立模式部署Spark

6.使用scala代碼将應用連接配接到叢集。

7.通過spark shell連接配接到叢集。

在獨立模式下,spark與hadoop、mapreduce以及yarn類似,遵循主從架構。計算主程式被稱為spark master,它運作在主節點上。通過使用zookeeper,spark master可以具有高可用性。如果需要的話,你可以增加更多的備用主節點。

計算從程式又被稱為worker,它運作在每一個從節點上,worker程式執行如下操作。

報告從節點的可用計算資源給主節點,例如核心數、記憶體以及其他。

響應spark master的執行要求,派生執行程式。

重新開機死掉的執行程式。

每個從節點機器的每個應用程式最多隻有一個執行程式。

spark master和worker都非常輕巧。通常情況下,500 mb到1 gb的記憶體配置設定就足夠了。可以通過設定conf/spark-env.sh檔案裡的spark_daemon_memory參數修改這個值。例如,如下配置将主節點和從節點的計算程式的記憶體設定為1 gb。確定使用超級使用者(sudo)運作:

預設情況下,每個從節點上運作一個worker執行個體。有時候,你的幾台機器可能比其他的都強大,在這種情況下,你可以通過以下配置派生多個作業到該機器上(特指那些強大的機器):

spark worker在預設情況下使用從節點機器的所有核心執行程式。如果你想要限制worker使用的核心數的話,可以通過如下配置設定該參數(例如12):

spark worker在預設情況下使用所有可用的記憶體(對執行程式來說是1 gb)。請注意,你不能給每一個具體的執行程式配置設定記憶體(你可以通過驅動配置對此進行控制)。想要配置設定所有執行程式的總記憶體數,可以執行如下設定:

在驅動級别,你可以進行如下設定。

要通過叢集指定特定應用的最大cpu核心數,可以通過設定spark submit或者spark shell中的spark.cores.max配置。

若要指定每個執行程式應配置設定的記憶體數(建議最小為8 gb),可以通過設定spark submit或者spark shell中的spark.executor.memory配置。

圖1-9描述了spark叢集的高層架構。

《Spark Cookbook 中文版》一1.5 在叢集上以獨立模式部署Spark