安装高可用spark集群--多个Master,配置zookeeper

前面我已经安装了spark集群,集群的规划是一个Master,三个Worker,L1上安装Master,L3,L4,L5上安装Worker,安装过程与细节请看我得另外一篇博客:https://blog.csdn.net/weixin_43866709/article/details/88388000

不过这样安装只有一个Master节点,如果这个Master节点宕机了,那么这个集群就不能正常运行了,于是就需要一个高可用的集群。
那么怎样实现高可用呢?我们可以安装两个Master,当其中一个Master节点宕机了之后,另外一个Master节点会立即顶替之前的节点,这样集群就可以稳定的进行工作了。
这样一来,我们就需要zookeeper协调服务了,zookeeper安装请看博客:
https://blog.csdn.net/weixin_43866709/article/details/88403379

在这里插入图片描述

现在的集群规划是:两个Master,三个Worker:
L1 Master,zookeeper
L2 Master,zookeeper
L3 Worker,zookeeper
L4 Worker
L5 Worker

安装配置完zookeeper集群并启动zookeeper集群。
停止spark所有服务,修改配置文件spark-env.sh

删除之前配置的SPARK_MASTER_IP //因为现在不确定Master节点是哪台机器了,所以要把这个删掉。

添加如下配置:
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=L1,L2,L3(#这里填写的是zookeeper的三台主机) -Dspark.deploy.zookeeper.dir=/spark"
然后记得将这个配置文件拷贝到其他机器。

1.接着启动spark集群,然后在新加入的Master节点上,进入到sbin目录,执行start-master.sh,这表示只启动master节点。否则会出错。
2.然后打开web管理界面,看到有三台Worker节点的信息
3.然后回到真正工作的Master节点上(也就是L1),使用命令kill -9 Master进程号杀死这个Master进程,这时Web管理界面会失效,接着使用L2节点的IP进入到Web管理界面,会看到相同的Worker节点的信息。这表示zookeeper已经选举成功,现在L2是真正工作的Master节点,说明高可用的spark集群安装成功。

注意事项

1.因为添加了一台Master,所以在L2上也要配置到其他Worker节点和L1的ssh免密登陆,否则这个新增加的Master无法工作
2.记得在/etc/hosts文件中添加其他节点的IP地址和主机名的映射关系,否则启动集群后,Worker节点虽然启动成功,但是spark集群Web管理页面上看不到Worker信息。
3.注意spark-env.sh新增加配置的格式,三台zookeeper主机名之间要用逗号隔开,每个配置开头都是-D,且所有配置要写在双引号之间。
4.在启动第二台Master节点时i,一定要用start-master.sh脚本启动。

posted on 2021-01-21 15:37  ExplorerMan  阅读(289)  评论(0编辑  收藏  举报

导航