Zookeeper集群搭建指的是ZooKeeper分布式模式安装。通常由2n+1台server组成。这是因为为了保证Leader选举(基于Paxos算法的实现)能过得到多数的支持,所以ZooKeeper集群的数量一般为奇数。
Zookeeper运行需要java环境,所以需要提前安装jdk。对于安装leader+follower模式的集群,大致过程如下:
1、配置主机名称到IP地址映射配置
2、修改ZooKeeper配置文件
3、远程复制分发安装文件
4、设置myid
4、启动ZooKeeper集群
IP地址 | 主机名 | myid值 |
---|---|---|
192.168.88.161 | node1 | 1 |
192.168.88.162 | node2 | 2 |
192.168.88.163 | node3 | 3 |
第一步:下载zookeeeper的压缩包,
下载网址 传送门
我们在这个网址下载我们使用的zk版本为3.4.6
下载完成之后,上传到我们的linux的/export/software路径下准备进行安装
第二步:解压
在node1主机上,解压zookeeper的压缩包到/export/server路径下去,然后准备进行安装
cd /export/software
tar -zxvf zookeeper-3.4.6.tar.gz -C /export/server/
第三步:修改配置文件
在node1主机上,修改配置文件
cd /export/server/zookeeper-3.4.6/conf/
cp zoo_sample.cfg zoo.cfg
mkdir -p /export/server/zookeeper-3.4.6/zkdatas/
vim zoo.cfg
修改以下内容
#Zookeeper的数据存放目录
dataDir=/export/server/zookeeper-3.4.6/zkdatas
# 保留多少个快照
autopurge.snapRetainCount=3
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
第四步:添加myid配置
在node1主机的/export/server/zookeeper-3.4.6/zkdatas/这个路径下创建一个文件,文件名为myid ,文件内容为1
echo 1 > /export/server/zookeeper-3.4.6/zkdatas/myid
第五步:安装包分发并修改myid的值
在node1主机上,将安装包分发到其他机器
第一台机器上面执行以下两个命令
scp -r /export/server/zookeeper-3.4.6/ node2:/export/server/
scp -r /export/server/zookeeper-3.4.6/ node3:/export/server/
第二台机器上修改myid的值为2
echo 2 > /export/server/zookeeper-3.4.6/zkdatas/myid
第三台机器上修改myid的值为3
echo 3 > /export/server/zookeeper-3.4.6/zkdatas/myid
第六步:添加环境变量
vim /etc/profile #添加以下内容,三台都要进行
export ZOOKEEPER_HOME=/export/server/zookeeper-3.4.6
export PATH=:$ZOOKEEPER_HOME/bin:$PATH
source /etc/profile
第七步:三台机器启动zookeeper服务
三台机器分别启动zookeeper服务
这个命令三台机器都要执行
/export/server/zookeeper-3.4.6/bin/zkServer.sh start
三台主机分别查看启动状态
/export/server/zookeeper-3.4.6/bin/zkServer.sh status
一件启动脚本
#!/bin/bash
echo "你想执行什么操作?"
PS3="请输入你的选择:" # 设置提示字符串
var="ok"
select var in "start" "stop" "status" ;
do
case $var in
"start")
echo "---------开始启动Zookeeper集群------"
;;
"stop")
echo "---------开始关闭Zookeeper集群------"
;;
"status")
echo "---------查看Zookeeper启动状态 ------"
;;
*)
echo "---------参数输入错误 ------"
esac
break # 如果这里没有break 将会进行无限循环
done
for host in node1 node2 node3
do
ssh root@$host "source /etc/profile;/export/server/zookeeper-3.4.6/bin/zkServer.sh $var"
done
echo "---------操作完毕------"
JDK安装
上传jdk到node1的/export/software路径下去并解压,在这里使用rz命令上传
tar -zxvf jdk-8u241-linux-x64.tar.gz -C /export/server/
4、配置环境变量
vim /etc/profile
添加如下内容
export JAVA_HOME=/export/server/jdk1.8.0_241
export PATH=:$JAVA_HOME/bin:$PATH
5、修改完成之后记得执行source /etc/profile使配置生效
source /etc/profile
6、测试
在node1主机上执行以下指令,测试是否安装成功:
java -version