master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个master节点来实现高可靠,配置方式比较简单:
Spark集群规划:Master:hadoop01、hadoop04;
Worker:hadoop02、hadoop03、hadoop04
安装配置zk集群,并启动zk集群(此处不在赘述)
停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删除
SPARK_MASTER_IP并添加如下配置
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop02,hadoop03,hadoop04 -Dspark.deploy.zookeeper.dir=/spark"
分发到hadoop02,hadoop03,hadoop04节点下
1.在hadoop01节点上修改slaves配置文件内容指定worker节点
ps:若是修改了slaves节点那么配置文件也发分发
2.先启动zookeeper集群
3.在hadoop01上执行sbin/start-all.sh脚本,然后在hadoop04上执行sbin/start-master.sh启动第二个Master
ps:若使用spark-shell启动集群需要添加配置
spark-shell --master spark://master01:port1,master02:port2