环境:spark2.1.1、zookeeper3.4.12
1、首先保证zookeeper集群正常安装并启动
zookeeper安装配置笔记
2、修改spark-env.sh文件做如下配置
注释掉如下内容(若预先安装了spark集群standlone模式):
#SPARK_MASTER_HOST=chdp11
#SPARK_MASTER_PORT=7077
添加上如下内容:
#配置故障恢复模式为zk
#配置zk集群节点
#配置工作目录
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=chdp11,chdp12,chdp13
-Dspark.deploy.zookeeper.dir=/spark-zk"
3、分发配置文件
transFilesToAll.sh spark-env.sh
4、在master节点上(chdp11)启动spark集群
sbin/start-all.sh
5、在chdp12上启动master作为备份备份节点
sbin/start-master.sh
6、spark-shell HA集群访问启动(HA模式访问将两个master节点都带上)
bin/spark-shell \
--master spark://chdp11:7077,chdp12:7077 \
--executor-memory 2g \
--total-executor-cores 2
7、访问spark UI
chdp11:8080
Status: ALIVE
chdp12:8080
Status: STANDBY
8、kill掉chdp11上的master进程,稍后查看chdp12:8080,发现其状态已经转变成alive状态,即已经完成故障转移。
虽然在web端的反馈比较慢,但实际上其内部故障转移一般可以在毫秒级完成。