-
环境准备:
- 准备三台虚拟机分别为,ali-kafka-vm1,ali-kafka-vm2,ali-kafka-vm3,可以根据个人自定义,确保所有节点的操作系统相同,例如都是 CentOS 7.9。
- 关闭所有节点的防火墙:
systemctl stop firewalld
和systemctl disable firewalld
。 - 配置 SELinux 为禁用模式:修改
/etc/sysconfig/selinux
文件,设置SELINUX=disabled
。 - 设置所有节点的静态 IP 地址,并确保它们之间可以相互通信。
-
安装 Java:
- 在所有节点上安装 Java,因为 ZooKeeper 需要 Java 环境。
- 该步骤可以参考我其他文章:Linux配置jdk
-
下载 ZooKeeper:
- 从 Apache ZooKeeper 的官方网站下载 ZooKeeper 安装包,地址:zookeeper官网
-
安装 ZooKeeper:
-
在ali-kafka-vm1上将下载的 ZooKeeper 安装包解压(这里下载的最新版):
-
根目录创建zookeeper目录
-
进行解压:
-
tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz -C /zookeeper/
-
-
查看已经解压成功:
-
配置 ZooKeeper:
-
进入/zookeeper目录下创建
dataDir
目录mkdir zkdata
创建成功
-
在
dataDir
目录中创建myid
文件,该文件包含一个数字,用于标识当前服务器在集群中的 ID。 -
编辑zoo.cfg配置文件:
cp zoo_sample.cfg zoo.cfg vim zoo.cfg
-
修改zoo.cfg文件中的配置项
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/zookeeper/zkdata clientPort=2181
-
在文件末尾配置集群服务器列表:
server.1=ali-kafka-vm1:2888:3888#切记,这里不要有任何空格,注释也不能有,大家复制过去把我这句话删掉,不然就会启动失败 server.2=ali-kafka-vm2:2888:3888 server.3=ali-kafka-vm3:2888:3888
-
-
将zookeeper目录分别分发到另外两台服务器
scp -r /zookeeper root@ali-kafka-vm2:/zookeeper scp -r /zookeeper root@ali-kafka-vm3:/zookeeper
-
三台服务器均创建myid文件,配置服务器编号
-
在每台服务器zookeeper的dataDir对应目录下创建 myid 文件,内容为对应ip的zookeeper服务器编号。
-
dataDir目录是你在zoo.cfg中配置的目录。内容是你在zoo.cfg中配置集群时server.后面的数字。
如下(截图是vm1,vm2,3,换成对应数字2,3:
-
-
配置环境变量(每台服务器都配置):
-
为了在任何目录下都能启动和停止 ZooKeeper,可以配置环境变量:
vim /etc/profile export ZOOKEEPER_HOME=/zookeeper/apache-zookeeper-3.9.2-bin export PATH=$PATH:$ZOOKEEPER_HOME/bin source /etc/profile
-
-
启动 ZooKeeper 服务:
-
在每个节点上启动 ZooKeeper 服务:
zkServer.sh start
-
检查 ZooKeeper 状态:
zkServer.sh status
-
-
搭建成功:
可以看到vm2被选举成为了leader,其余两台为follower,至此zookeeper集群搭建成功!觉得有用的小伙伴点个免费的赞赞吧!