Zookeeper - 集群搭建 + 群起集群脚本

目录

一、配置参数

二、启动集群

三、丢脸的至暗时刻

咱们来把一直是错的目录名字改一下。。。

四、Shell脚本一键启动、关闭集群


上一篇已经结束了单台Zookeeper的本地安装(Zookeeper - 本地安装与参数配置)和Hadoop集群的搭建,强烈建议去看一眼里面的xsync,在此篇会大量应用(Hadoop 3.x - 本地安装 & 完全分布式安装 & 集群配置 & xsync分发脚本(解决root用户启动Hadoop集群的报错问题)),这篇咱们来看看Zookeeper的集群安装。这回咱们上了三台服务器来搭建zk的集群:


一、配置参数

建议先去看上一篇的本地安装,这样方便与本篇文章一起操作:Zookeeper - 本地安装与参数配置

咱们在之前的本地安装中创建了一个 zkData 目录,咱们进入这个目录进行集群的配置:

创建一个叫 myid 的文件,这个名字是固定的,不要进行更改:

touch myid
echo '2' > myid

没错这里只要写一个 2 在里面就可以了。这里可以看眼下面的图,咱们这台服务器叫做 102 所以咱们给这里的文件配置了一个 2 ,以此类推,后面的 103 104 就分别为 3 4 。这个 myid 是唯一的身份标识,所以不能重复使用。

创建完成后使用 xsync 进行同步分发,没有这个脚本的可以去看下Hadoop 3.x - 本地安装 & 完全分布式安装 & 集群配置 & xsync分发脚本(解决root用户启动Hadoop集群的报错问题)

此篇中有提到过该脚本:

xsync /opt/module/zookpeer-3.5.7/

然后咱们需要立刻去 103 104 机器中修改myid:

Zookeeper - 集群搭建 + 群起集群脚本_第1张图片

然后回到咱们的 102 机器上继续进行配置:

cd /opt/module/zookpeer-3.5.7/conf
vim zoo.cfg 

把以下内容复制粘贴到文件的末尾:

server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888

Zookeeper - 集群搭建 + 群起集群脚本_第2张图片

这个玩意儿是啥意思呢,咱们来看看

server.2=hadoop102:2888:3888:拿这个来举例,就按颜色来划分:

server.2=hadoop102:2888:3888:表示这是第几号服务器

server.2=hadoop102:2888:3888:服务器地址

server.2=hadoop102:2888:3888:服务器 Follower 与集群中的 Leader 服务器交换信息的端口

server.2=hadoop102:2888:3888万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口

保存退出后分发一下:

xsync zoo.cfg

Zookeeper - 集群搭建 + 群起集群脚本_第3张图片


二、启动集群

在 102 机器中启动zk集群:

cd /opt/module/zookpeer-3.5.7/bin
./zkServer.sh start

 查看一下状态:

./zkServer.sh status

很明显集群并没有起来,原因是咱们只启动了一台 102 ,启动的台式少于一半,所以集群启动失败,咱们去 103 和 104 上面都启动一下:

cd /opt/module/zookpeer-3.5.7/bin
./zkServer.sh start

然后咱们看看他们的状态:

./zkServer.sh status

102:follower

103:leader

104:follower

启动成功 


三、丢脸的至暗时刻

咱们来把一直是错的目录名字改一下。。。

102:

vim /opt/module/zookeeper-3.5.7/conf/zoo.cfg 

改一下路径位置:  

mv /opt/zookpeer /opt/zookeeper
xsync /opt/zookeeper

103 & 104:

rm -rf /opt/zookpeer

最后的最后记得修改一下 myid  103 

echo '3' > /opt/module/zookeeper-3.5.7/zkData/myid 

104

echo '4' > /opt/module/zookeeper-3.5.7/zkData/myid 

四、Shell脚本一键启动、关闭集群

#!/bin/bash
case $1 in
"start"){
for i in hadoop102 hadoop103 hadoop104
do
 echo ---------- zookeeper $i 启动 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
done
};;
"stop"){
for i in hadoop102 hadoop103 hadoop104
do
 echo ---------- zookeeper $i 停止 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
done
};;
"status"){
for i in hadoop102 hadoop103 hadoop104
do
 echo ---------- zookeeper $i 状态 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
done
};;
esac

用一下看看(我这里是加了环境变量,平常按照正常脚本运行即可):

zk.sh start

Zookeeper - 集群搭建 + 群起集群脚本_第4张图片

zk.sh status

Zookeeper - 集群搭建 + 群起集群脚本_第5张图片

zk.sh stop

Zookeeper - 集群搭建 + 群起集群脚本_第6张图片

你可能感兴趣的:(Zookeeper,Linux,java-zookeeper,zookeeper,分布式,服务器,linux)