今天分享一篇從0到1搭建Spark集羣的步驟,企業中你們亦能夠參照次集羣搭建本身的Spark集羣。html
一。下載Spark安裝包java
能夠從官網下載,本集羣選擇的版本是spark-1.6.0-bin-hadoop2.6node
在官網中找到對應的連接便可http://spark.apache.org/downloads.htmlshell
或者用本人云盤下載地址 附上連接以下連接:https://pan.baidu.com/s/1o7Vrkue 密碼:sc2zapache
二。部署和規劃Spark集羣架構
提早準備好四臺虛擬主機,三臺主機 node1 node2 node4 作Spark集羣 develop作Spark客戶端用於提交程序jvm
集羣規劃以下:ide
node1 Master節點 node2,node4 Worker節點 架構圖以下:oop
在此以前須要配置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`即到當前目錄
六、啓動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.