Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存着Master单点故障的问题。如何解决这个问题,Spark提供了两种方案:
(1)基于文件系统的单点恢复
# 1.安装Zookeeper # 2.修改spark-env.sh文件添加如下配置 注释掉如下内容: # SPARK_MASTER_HOST=hadoop102 /注释掉master节点的ip,因为高可用部署的master是变化的 # SPARK_MASTER_PORT=7077 添加上如下内容:
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=hdp01,hdp02,hdp03 //这里填写zookeeper集群的ip zookeeper单机式只需要填一个即可
-Dspark.deploy.zookeeper.dir=/spark"
参数说明;
(1)recoveryMode,恢复模式(Master重新启动的模式)
有三种:Zookeeper、FileSystem、None
(2)deploy.zookeeper.url,Zookeeper的服务器地址
(3)deploy.zookeeper.dir,保存集群元数据信息的文件、目录。
包括worker,Driver,Application.
注意:
在普通模式下启动集群,只需要在主机上执行start-all.sh就可以了。
在高可用模式下启动spark集群,先需要在任意一台节点上启动start-all.sh命令。然后在另外一台节点上单独启动master.
验证spark集群:出现worker,hdp02启动成功
再单独启动hdp02的master
master启动成功,在web UI验证,哪个master是alive
高可用验证,关闭hdp01节点的master,是否能够自动启动hdp02的master节点
spark+zookeeper高可用集群搭建成功!