官网首页:Apache ZooKeeper
服务器1 | 192.168.206.135 |
服务器2 | 192.168.206.136 |
服务器3 | 192.168.206.137 |
解压压缩包
tar -zxvf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/
目录重命名
mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7
创建数据存储目录
mkdir -p /opt/zookeeper-3.5.7/zkData
目录下创建一个 myid 的文件
vim /opt/zookeeper-3.5.7/zkData/myid
在文件中添加与 server 对应的编号,编号可以取随意值,但在集群中必须唯一(注意:上下不要有空行,左右不要有空格)
1
注意:添加 myid 文件,一定要在 Linux 里面创建,在 notepad++里面很可能乱码
并分别在其它服务器上修改 myid 文件中内容为 2、3
配置zoo.cfg文件
复制/opt/apache-zookeeper-3.5.7/conf/ 这个目录下的 zoo_sample.cfg 为 zoo.cfg,将原先的配置文件修改为zoo_sample.cfg.bak
cd /opt/zookeeper-3.5.7/conf/
cp zoo_sample.cfg zoo.cfg
mv zoo_sample.cfg zoo_sample.cfg.bak
打开 zoo.cfg 文件
#修改数据存储路径配置
dataDir=/opt/zookeeper-3.5.7/zkData
增加如下配置
#######################cluster##########################
server.1=192.168.206.135:2888:3888
server.2=192.168.206.136:2888:3888
server.3=192.168.206.137:2888:3888
复制文件至其它服务器,修改其对应myid文件为2,3
scp -r /opt/zookeeper-3.5.7/ root@192.168.206.137:/opt/
scp -r /opt/zookeeper-3.5.7/ root@192.168.206.137:/opt/
vim /opt/zookeeper-3.5.7/zkData/myid
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
./zkServer.sh start
启动135服务器时,由于zookeeper还未启动半数,所以服务状态为LOOKING
启动136服务器,此时zookeeper服务器数据大于半数,启动成功
启动137服务器,与136一致
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
initLimit = 10:LF初始通信时限
Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)
syncLimit = 5:LF同步通信时限
Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
dataDir:保存Zookeeper中的数据,注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。
clientPort = 2181:客户端连接端口,通常不做修改。
A 是一个数字,表示这个是第几号服务器;
集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据
就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比
较从而判断到底是哪个 server。
B 是这个服务器的地址;
C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的
Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
命令基本语法 | 功能描述 |
help | 显示所有操作命令 |
ls path | 使用 ls 命令来查看当前 znode 的子节点 [可监听] -w 监听子节点变化 -s 附加次级信息 |
create | 普通创建 -s 含有序列 -e 临时(重启或者超时消失) |
get path | 获得节点的值 [可监听] -w 监听节点内容变化 -s 附加次级信息 |
set | 设置节点的具体值 |
stat | 查看节点状态 |
delete | 删除节点 |
deleteall | 递归删除节点 |
客户端连接
./zkCli.sh -server 192.168.206.135:2181