zookeeper 集群搭建
单机安装
下载路径
https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/
解压文件 cd到某个目录下,进行解压
tar -xzvf /local/software/apache-zookeeper-3.4.14.tar.gz
创建zoo.cfg配置文件
cd /local/server/zookeeper/apache-zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cfg
创建data目录
cd /local/server/zookeeper/apache-zookeeper-3.4.14
mkdir data
切换到conf目录下修改配置
修改zoo.cfg文件内容中的dataDir路径信息;如 dataDir=/local/server/zookeeper/apache-zookeeper-3.4.14/data
vi zoo.cfg
启动zk服务 cd 到bin目录下
zkServer.sh start
验证是否启动成功
zkServer.sh status
或者通过jps命令是否有QuorumPeerMain
集群安装
配置三台单体zk 修改zoo.cfg文件
- 修改dataDir 路径
- 修改dataLogDir 路径
- 修改客户端端口clientPort
- 增加三行
server.1=127.0.0.1:2222:2225
server.2=127.0.0.1:3333:3335
server.3=127.0.0.1:4444:4445
【server】的配置含义说明:
server.A=B:C:D
其中 A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的 ip 地址;
C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
zoo.cfg 文件内容
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/local/server/zookeeper/zookeeper-3.4.14-3/data
dataLogDir=/local/server/zookeeper/zookeeper-3.4.14-3/log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=127.0.0.1:2222:2225
server.2=127.0.0.1:3333:3335
server.3=127.0.0.1:4444:4445
配置三个zookeeper 服务;
除了配置文件不一样(指定不同的客户端端口),还有需要在各自的data目录下创建myid文件
内容跟server.X (X=1)一致。
【注意点】:
其中的server.1里面的数字1,是我们在myid文件中指定的数值。代表不同的zk节点。
同时,IP地址配置也要与server.1所在的服务器节点的IP地址一致。
后面的2个通信端口,随意指定,只要不与其他端口冲突就行。
启动集群
各自切换到bin 目录下
bin/zkServer.sh start
客户端连接
bin/zkCli.sh -server 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
启动成功1. 连接自身客户端 第一个zk服务器端口是2181
localhost:zookeeper zhengzhijian$ ./zookeeper-3.4.14/bin/zkCli.sh -server 127.0.0.1:2181
- 跨节点访问 第一个服务访问第二个服务客户端端口 2182
localhost:zookeeper zhengzhijian$ ./zookeeper-3.4.14/bin/zkCli.sh -server 127.0.0.1:2182
域名访问
1 编辑 /etc/hosts 文件
增加ip域名解析
127.0.0.1 zkServer
2 调整zoo.cfg 对应server的ip地址
server.1=zkServer:2222:2225
server.2=zkServer:3333:3335
server.3=zkServer:4444:4445
3.通过域名访问服务
localhost:zookeeper zhengzhijian$ ./zookeeper-3.4.14-2/bin/zkCli.sh -server zkServer:2181
简单的客户端操作zk
1: create 创建节点(临时节点,持久化节点)
2:get path (获取节点信息)
3:set path value (设值)
4:ls path (获取节点下的信息)
5:delete path (删除节点)