前提条件
- 操作系统:CentOS7
- 服务器:3台
- Java环境:JDK1.8。安装教程参考JDK1.8安装
下载
- 执行
cd /usr/local
进入安装的目录 - 执行命令
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
下载zookeeper包
解压
- 执行命令
tar -zxvf zookeeper-3.4.10.tar.gz
解压。
配置文件
- 进入zookeeper目录
cd zookeeper-3.4.10/
- 复制一份配置文件,防止文件配置错乱
cp conf/zoo_sample.cfg conf/zoo.cfg
默认的配置文件
# leader、follower心跳检测时间,单位ms
tickTime=2000
# follower与leader建立连接超时时间,initLimit*tickTime
initLimit=10
# leader下发给follower命令操作反馈时间syncLimit*tickTime
syncLimit=5
# 持久化日志、快照等数据的目录
dataDir=/tmp/zookeeper
# 客户端连接zookeeper使用的端口号
clientPort=2181
# 允许最大的连接数
# maxClientCnxns=60
# 快照文件保存数量
#autopurge.snapRetainCount=3
# 快照清理频率,单位小时
#autopurge.purgeInterval=1
集群配置
- 执行命令
vim /usr/local/zookeeper-3.4.10/conf/zoo.cfg
分别在三台服务器的ZK配置文件zoo.cfg添加节点信息,格式为server.A=B:C:D。- A为集群中服务节点的标识
- B为服务节点的IP
- C为集群内机器通信使用
- D为leader选举端口
server.1=192.168.2.187:2888:3888
server.2=192.168.1.228:2888:3888
server.3=192.168.1.236:2888:3888
- 执行命令
mkdir /tmp/zookeeper
创建dataDir,可以任意指定。 - 执行
vi /tmp/zookeeper/myid
命令往dataDir写入对应的ID。测试
- 执行命令
cd /usr/local/zookeeper-3.4.10/bin
进入目录。 - 执行命令
./zkServer.sh start
启动。 - 执行命令
./zkServer.sh status
查看启动状态。启动成功后可以看到每个节点的角色。常用命令
客户端操作命令./zkServer.sh start #启动服务 ./zkServer.sh status #查看服务状态 ./zkServer.sh stop #停止服务 ./zkServer.sh start-foreground #前台的方式启动服务 ./zkServer.sh restart #服务重启 ./zkCli.sh # 客户端连接zk,默认连接本机 ./zkCli.sh -server 192.168.1.228:2181 # 连接指定zk
stat path [watch] #查看文件状态 set path data [version] #更新文件数据 ls path [watch] #显示文件 history # 显示操作记录 delete path [version] #删除文件 get path [watch] #删除文件数据 create [-s] [-e] path data acl #创建文件 -s为持久文件 -e为临时文件 quit # 客户端退出