Spark是通用的基於內存計算的大數據框架,能夠和hadoop生態系統很好的兼容,如下來部署Spark集羣java
集羣環境:3節點 Master:bigdata1 Slaves:bigdata2,bigdata3shell
Master負責任務的分發,與集羣狀態的顯示apache
Slaves運行具體的Worker任務,最後交由Executor執行任務代碼vim
集羣搭建以前,必須知足以下條件:服務器
一、集羣主機名和hosts文件映射一一對應框架
二、集羣ssh免密登陸配置ssh
三、集羣每一個節點防火牆關閉oop
四、JDK正確安裝測試
五、Scala正確安裝大數據
六、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集羣就部署完畢了