Spark是通用的基於內存計算的大數據框架,可以和hadoop生態系統很好的兼容,以下來部署Spark集群
集群環境:3節點 Master:bigdata1 Slaves:bigdata2,bigdata3
Master負責任務的分發,與集群狀態的顯示
Slaves運行具體的Worker任務,最后交由Executor執行任務代碼
集群搭建之前,必須滿足如下條件:
1、集群主機名和hosts文件映射一一對應
2、集群ssh免密登錄配置
3、集群每個節點防火牆關閉
4、JDK正確安裝
5、Scala正確安裝
6、Hadoop集群安裝,因為Spark存儲層要用到HDFS,所以應該至少保證HDFS服務的正常運行,hadoop集群可以在yarn上,也可以由zookeeper協調,這個都沒問題,最重要的是hadoop集群能正常運行
然后可以開始安裝Spark,Spark官方網站是:http://spark.apache.org/,直接去官方網站下載spark安裝包即可,這里安裝的是1.x的最新版1.6.2,2.0是剛出來,暫時沒有使用,包名為:spark-1.6.2-bin-hadoop2.6.tgz 這里已經安裝的hadoop版本為hadoop 2.6.0,下載之后上傳至服務器准備安裝
在bigdata1 Master節點執行如下命令解壓,目錄可以自定義,這里安裝位置是/bigdata/spark
tar -xvzf spark-1.6.2-bin-hadoop2.6.tgz mkdir /bigdata/spark mv spark-1.6.2-bin-hadoop2.6 /bigdata/spark/ cd /bigdata/spark/spark-1.6.2-bin-hadoop2.6/
配置文件目錄在安裝目錄下的conf下,然后從默認模板中拷貝出要編輯的配置文件:
cp conf/spark-env.sh.template conf/spark-env.sh cp conf/slaves.template conf/slaves
網上說的可以添加spark到環境變量中,這個是為了方便啟動和調試,是可選的,
執行 vim conf/slaves 配置運行Worker任務的節點,和hadoop的slaves配置類似,單機環境中默認或者改為本地主機名,這里是bigdata2,bigdata3
執行 vim conf/spark-env.sh 編輯spark啟動加載腳本,在最后添加如下配置:
# JDK目錄 export JAVA_HOME=/usr/local/java/jdk1.8.0_73 # Scala目錄 export SCALA_HOME=/usr/local/scala/scala-2.11.8 # Master IP地址 export SPARK_MASTER_IP=192.168.0.187 # Worker運行內存 export SPARK_WORKER_MEMORY=1024m # hadoop配置文件目錄 export HADOOP_CONF_DIR=/bigdata/hadoop/hadoop-2.6.0/etc/hadoop
集群中Worker運行內存可以適當調整3g~8g的范圍
然后發送Spark到集群其他節點:
scp -r spark/ bigdata2:/bigdata/ scp -r spark/ bigdata3:/bigdata/
最后啟動Spark集群,在Master節點執行: sbin/start-all.sh 可以啟動整個集群,通過執行jps可以看到Master運行的進程是Master,Slaves節點運行的進程是Worker
另外也可以通過在Master節點分別執行 sbin/start-master.sh 和 sbin/start-slaves.sh 分別調起來master和全部子節點的worker進程,這樣可以根據不同需要有選擇的調起集群中的服務
Spark的服務都啟動之后,訪問Master地址可以打開相應的管理界面,地址就是:http://ip:8080,會看到界面如下:
通過界面可以方便的查看並管理相應的端口號,配置項,Workers節點,正在運行的應用任務等
通過執行 bin/spark-shell 或者指定相應的參數 bin/spark-shell --executor-memory 1g --driver-memory 1g --master spark://bigdata1:7077 可以進入scala交互式命令行界面,在這里可以進行一些測試等
到這里,Spark集群就部署完畢了