從0到1搭建spark叢集---企業叢集搭建

LHBlog發表於2017-12-16

今天分享一篇從0到1搭建Spark叢集的步驟,企業中大家亦可以參照次叢集搭建自己的Spark叢集。

一。下載Spark安裝包

可以從官網下載,本叢集選擇的版本是spark-1.6.0-bin-hadoop2.6

在官網中找到對應的連結即可http://spark.apache.org/downloads.html

或者用本人云盤下載地址 附上鍊接如下連結:https://pan.baidu.com/s/1o7Vrkue 密碼:sc2z

二。部署和規劃Spark叢集

提前準備好四臺虛擬主機,三臺主機 node1 node2 node4 做Spark叢集  develop做Spark客戶端用於提交程式

叢集規劃如下:

node1 Master節點 node2,node4 Worker節點 架構圖如下:

 在此之前需要配置Master節點到Worker的免密登陸因為在Master節點需要啟動所有的Worker節點,所有需要配置Master到Worker的免密登陸 只需要這一個免密配置即可 不需要配置woker--worker  worker-master節點的免密  因為主要是在Master節點上啟動叢集

   免密設定具體參考如下:http://blog.csdn.net/leexide/article/details/17252369

1.分別在三臺叢集下建立同名目錄 (目錄一定要一致,方便叢集部署)

本叢集環境建立為/root/spark目錄

2.使用Xshell將檔案上傳至其中某個節點即可(沒有必要上傳全部節點,因為後期還要重新配置)

上傳至某個節點之後,假設上傳到主節點Master節點後

 3.解壓目錄,命令和結構如下

 tar -zxf   spark-1.6.0-bin-hadoop2.6.tar

然後重新命名 方便後期部署

mv  spark-1.6.0-bin-hadoop2.6  spark-1.6.0

結構如下:

4.配置引數

進入到配置目錄,路徑為

/root/spark/spark-1.6.0/conf

後可看見檔案如下

我們需要把template關鍵字去掉 因為是個模板檔案 簡單介紹下檔案作用:

slaves檔案---worker幾點所在目錄

spark-default.conf目錄檔案 預設配置檔案

spark-env.sh環境配置檔案

這幾個是我們主要用的

更改後的目錄檔案格式如下:

配置spark-env.sh

可以看到叢集配置引數如下,我們主要配置這些引數

配置完後的截圖如下:

 

 解釋一下引數意義:

SPARK_MASTER_IP=node1  #主節點主機名

SPARK_MASTER_PORT=7077 #主節點和Worker的通訊埠

SPARK_WORKER_CORES=2 # 每個worker程式能管理兩個核

SPARK_WORKER_MEMORY=2g # 每個worker程式能管理2g記憶體

SPARK_MASTER_WEBUI_PORT=8888 # 主節點WEB-UI展示圖  預設埠是8080

SPARK_WORKER_INSTANCES=1 #每個worker節點能夠啟動的worker程式 預設是一個 如果為2  則每一個worker幾點能夠啟動2個Worker程式 就這意思

根據這配置 則 Master節點能夠管路4core 4g記憶體(有兩個Worker程式 每一個worker程式管理兩個核,2g記憶體)

 配置slaves檔案:配置從節點的ip 或主機名

截圖如下

5.將主節點的配置分發到從節點 同名目錄下

命令如下:

回到spark的主目錄配置檔案

 

然後分發到node2  node4節點 這裡命令如下`pwd`即到當前目錄

6、啟動Spark叢集:
    執行安裝包sbin目錄下的start-all.sh指令碼
    ./sbin/start-all.sh

 7.檢視叢集狀態

jps命令為jvm的命令與局之一 專門檢視java程式

Master節點狀態:

Worker節點狀態:

 

檢視WEBUI是否能訪問:

注意關閉Linux的防火牆:具體操作如下

/etc/init.d/iptables status

會得到一系列資訊,說明防火牆開著。

/etc/init.d/iptables stop

永久關閉:

chkconfig --level 35 iptables off

在本機訪問node1:8888(別忘配置host)

 

 至此,叢集搭建成功!

8.測試叢集是否可用

 將主節點中的spark檔案同步到客戶端develop節點

在develop節點中提交spark任務 ,由於本例測試 所以直接提交spark自帶測試用例 計算Pi的值

注意別忘配置Client(develop)客戶端的host 因為要提交任務到Master節點(node1)節點上去執行

即可看見執行狀態

在WebUI也可以看見

 

 到此叢集測試完畢!!!

 

持續更新中。。。。,歡迎大家關注我的公眾號LHWorld.

 

相關文章