今天分享一篇從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.