spark集羣主要有三種方式,standalone、on mesos 和 on yarn
standalone模式指:以spark架構爲主集羣資源管理模式,即資源的管理和分配以及任務調度都由spark生態來完成
spark on mesos和spark on yarn是把資源管理和分配交給其他框架來實現,這是將來的趨勢。其中yarn又是基於hadoop架構的,配置yarn還需要更多地配置hadoop的相關文件,相比而言mesos比較好配置,建議配置spark on mesos。
這次的技術分享主要以standalone爲主,快速地搭建一套spark集羣。
操作系統:ubuntu 16.4
假設有如下地址:
1.1.1.1的ip爲主機master
2.2.2.2的ip爲從機slave1
一、配置host
1、編輯 /etc/hosts
(1)增加如下行:
1.1.1.1 master master
2.2.2.2 slave1 slave1
2、編輯 /etc/hostname
(1)把所有的內容去掉,修改成master(從機則修改成slave1)
3、sh命令行輸入:service networking restart
或者重啓
4、建立如下目錄
/disk1
/disk1/java
/disk1/spark
5、下載jdk
1、進入:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下載jdk
或者(截止2018/08/15,jdk8的下載下載方式如下):
(1)進入文件夾
sh:cd disk1
sh:cd java
(2)下載jdk
sh:wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
其中標紅的地方是會變更的,需要去oracle官網去尋找最新的地址
(3)解壓
sh:tar zxf jdk-8u181-linux-x64.tar.gz
(4)給java目錄修改一下名字,方便後期增加路徑信息
sh:mv jdk1.8.0_181 java_main
6、下載spark
(1)進入文件夾
cd disk1
cd spark
(2)下載spark
wget http://mirrors.hust.edu.cn/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz
(3)解壓
tar spark-2.3.1-bin-hadoop2.7.tgz
(4)修改名字
mv spark-2.3.1-bin-hadoop2.7 spark_main
7、配置spark
(1)進入配置文件目錄
cd /disk1/spark/spark_main/conf
(2)複製tmeplates文件
cp slaves.templates slaves
cp spark-env.sh.template spark-env.sh
(3)編輯slaves
vim slaves打開文件修改localhost爲:slave1
保存
(4)編輯spark-env.sh
vim spark-env.sh追加如下:
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077
export JAVA_HOME=/disk1/java/java_main
保存
8、配置~/.bashrc
vim ~/.bashrc
追加如下:
export JAVA_HOME=/disk1/java/java_main
export JRE_HOME=${JAVA_HOME}/jre
export SPARK_HOME=/disk1/spark/spark_main
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:$SPARK_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
保存退出
執行:source ~/.bashrc
到這,所有的配置都配置完了,這是主機master的配置,從機slave1只需要把/etc/hostname的內容修改爲slave1,其餘的配置用master的所有配置信息,一模一樣
最後:
cd /disk1/spark/spark_main/sbin
執行:
start-all-sh
輸入slave1密碼即可啓動集羣,免密登錄詳見百度- -
查看集羣是否啓動,在內網任一服務器的瀏覽器輸入:master:8080即可,或者輸入: IP(內網IP地址):8080,如發現spark頁面,說明部署成功!!!
上述過程我自行編寫了一些sh腳本,方便一鍵部署:詳見:
https://github.com/a773427182/Bigdata/blob/master/main.sh
和
https://github.com/a773427182/Bigdata/blob/master/main2.sh