Linux Centos7下ZooKeeper集群安装详细步骤

时间:2022-08-03 08:23:39

1.下载zookeeper

wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

2.解压zookeeper-3.4.6.tar.gz并重命名为zookeeper

tar -zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper

3.创建保存zookeeper数据文件夹

mkdir -p /var/lib/zookeeperDatadir

4.修改zookeeper配置文件

cd zookeeper/bin
cp zoo.sample.cfg zoo.cfg
vi zoo.cfg

## 修改
dataDir=/var/lib/zookeeperDatadir

## 如果端口被占用 则修改
clientPort=2181

## 增加以下配置
server.1 = 集群机器IP:2888:3111
server.2 = 集群机器IP2:2888:3111
server.3 = 集群机器IP3:2888:3111

server.id=host:port:port解析
每一行此配置表示一个集群中的一台服务器。其中id为Server ID,用来标识该机器在集群中的编号。同时,在所在服务器的数据目录(/var/lib/zookeeperDatadir)下创建一个myid文件,该文件只有一行内容,并且是一个数字,就是对应每台服务器的Server ID数字。

比如server.1=IP1:2888:3888的myid中的内容就是1。不同服务器的ID需要保持不同,并且和zoo.cfg文件中server.id中的id和myid文件的内容保持一致。id的取值范围为1~255。其中,server.id中配置参数的第一个port是集群中其他机器与Leader之间通信的端口,第二个port为当Leader宕机或其他故障时,集群进行重新选举Leader时使用的端口。

按照以上相同步骤,配置集群中的其他机器。每个集群的zoo.cfg文件都是相同的,可通过版本控制或其他工具保证每台zookeeper服务器的配置文件相同。集群中每台机器唯一不同的是server.id对应的myid文件中的数字不同。

5.复制zookeeper到另外两台参与集群的机器上

scp -r zookeeper路径 root@集群机器IP2:目的路径
scp -r zookeeper路径 root@集群机器IP3:目的路径

6.每台服务器上配置相应的myid文件

## zoo.cfg的dataDir目录
cd /var/lib/zookeeperDatadir
## 自动生成myid文件
vi myid
## 进入VI编辑模式,输入1,保存退出
1

依次在每台机器上配置,server.2的myid文件中的值为2,依次类推。

7.启动和关闭zookeeper

cd zookeeper安装目录
## 启动zookeeper
bin/zkServer.sh start
## 查看zookeeper状态
bin/zkServer.sh status
## zookeeper客户端工具
bin/zkCli.sh
## 关闭zookeeper
bin/zkServer.sh stop

8.在三个机器上依次单独执行命令挨个启动zookeeper.分别查看zookeeper状态,正常状态下:

[root@iz2zedcm7ep5qv4uo0tnrwz bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zookeeper-2/bin/../conf/zoo.cfg
Mode: leader

9.需要注意的是一般zookeeper集群由3~5台服务器组成,即2n+1台机器