Standalone模式
1.下載安裝包、解壓
[root@node01 package]# tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /opt/software/
2.改名
[root@node01 software]# mv spark-2.2.0-bin-hadoop2.7/ spark-2.2.0
3.進入安裝包的conf目錄下,修改slaves.template文件,添加從節點。保存。
[root@node01 conf]# cp slaves.template slaves
[root@node01 conf]# vi slaves
node02
node03
node04
4.修改spark-env.sh
SPARK_MASTER_IP/HOST:master的ip或host,之前的版本中是IP,後面改爲HOST
SPARK_MASTER_PORT:提交任務的端口,默認是7077
SPARK_WORKER_CORES:每個worker從節點能夠支配的core的個數
SPARK_WORKER_MEMORY:每個worker從節點能夠支配的內存數
export SPARK_MASTER_HOST=node01
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=3g
5.同步到其他節點
scp -r spark-2.2.0/ node02:`pwd`
scp -r spark-2.2.0/ node03:`pwd`
scp -r spark-2.2.0/ node04:`pwd`
6.啓動集羣
[root@node01 ~]# cd /opt/software/spark-2.2.0/sbin/
[root@node01 sbin]# ./start-all.sh
7.搭建客戶端
將spark安裝包原封不動的拷貝到一個新的節點上,然後,在新的節點上提交任務即可。
注意:
(1) 8080是Spark WEBUI界面的端口,7077是Spark任務提交的端口。
(2)修改master的WEBUI端口:
(3)修改start-master.sh即可。
if [ "$SPARK_MASTER_WEBUI_PORT" = "" ]; then
SPARK_MASTER_WEBUI_PORT=8080
fi
(4)也可以在Master節點上導入臨時環境變量,只是作用於之後的程序,重啓就無效了。
[root@node01 sbin]# export SPARK_MASTER_WEBUI_PORT=8080
(5)刪除臨時環境變量:
[root@node01 sbin]# export -n SPARK_MASTER_WEBUI_PORT
Yarn模式
只需要在standalone模式的基礎上,在客戶端的spark-env.sh文件中配置如下:
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
高可用
(1)在Spark Master節點上配置主Master,配置spark-env.sh
SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=node02:2181,node03:2181,node04:2181
-Dspark.deploy.zookeeper.dir=/var/hadoop/zk"
(2)發送到其他worker節點上
[root@node01 conf]# scp spark-env.sh node02:`pwd`
[root@node01 conf]# scp spark-env.sh node03:`pwd`
[root@node01 conf]# scp spark-env.sh node04:`pwd`
(3)找一臺節點(非主Master節點)配置備用 Master,修改spark-env.sh配置節點上的HOST/MasterIP
export SPARK_MASTER_HOST=node02
(4)啓動集羣之前啓動zookeeper集羣:
(5)啓動spark Standalone集羣,啓動備用Master
(6)打開主Master和備用Master WebUI頁面,觀察狀態。