环境
操作系统:CentOS 7.5
运行环境:Java 1.8
版本:zookeeper-3.4.12
网络结构
- host1 172.18.0.11
- host2 172.18.0.12
- host3 172.18.0.13
修改host1、host2和host3机器上的配置文件/etc/hosts,新增内容如下:
172.18.0.11 host1
172.18.0.12 host2
172.18.0.13 host3
下载
- 下载zookeeper-3.4.12.tar.gz
- 分别上传到host1、host2和host3机器上的/usr/local文件夹下
- 分别解压文件tar -zxvf zookeeper-3.4.12.tar.gz,解压后的文件夹为zookeeper-3.4.12
配置
- 进入到conf目录下
- 复制zoo_sample.cfg为zoo.cfg
- 修改zoo.cfg文件,内容如下
dataDir=/usr/local/zookeeper-3.4.12/data
server.0=host1:2888:3888
server.1=host2:2888:3888
server.2=host3:2888:3888
server.x=a:b:c
- x表示zookeeper所在主机编号
- a表示zookeeper所在主机名或IP地址
- b和c表示端口,用来zookeeper集群中之间的通信
集群ID
- 根据dataDir指定的目录,在zookeeper-3.4.12下创建文件夹data
- 进入data文件夹中
- 创建文件myid文件,内容为zookeeper所在主机编号
主机名对应编号如下:
host1 0
host2 1
host3 2
启动zookeeper
- 分别进入到host1、host2和host3主机
- 进入到/usr/local/zookeeper-3.4.12目录下
执行命令如下:
./bin/zkServer.sh start
启动完成,查看状态和mode类型
./bin/zkServer.sh status
- model=leader表示为zookeeper主服务
- model=follower表示为zookeeper从服务
重启zookeeper
./bin/zkServer.sh restart
关闭zookeeper
./bin/zkServer.sh stop
客户端
进入到/usr/local/zookeeper-3.4.12目录下,执行命令如下:
./bin/zkCli.sh -server host1:2181,host2:2181,host3:2181
创建znode
create /mynode "hello, zookeeper"
查看znode
get /mynode
删除znode
delete /mynode
退出zkCli
quit
相关端口
- 2181 客户端请求端口
- 2888:3888 zookeeper集群通信端口
如果端口不通,防火墙开启端口
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
systemctl restart firewalld