1.zookeeper安装

安装一个zk其实很简单,就是下载zookeeper安装包:https://archive.apache.org/dist/zookeeper/ ,然后解压压(tar -zxvf) 就好了。

1.1 单点模式

一般情况下,在开发测试环境,没有这么多资源的情况下,而且也不需要特别好的稳定性的前提下,我们可以使用单机部署。

tar -zxvf zookeeper-3.4.5.tar.gz
mv zookeeper-3.4.5 /usr/local/zookeeper // 注:由于/usr/local/zookeeper目录是在移动时才创建,所以复制的结果是将zookeeper-3.4.5的内容直接复制进去

初次使用zookeeper,需要将conf目录下的zoo_sample.cfg文件copy一份重命名为zoo.cfg,修改dataDir目录,dataDir表示日志文件存放的路径

cd /usr/local/zookeeper
mkdir data  // 创建用于存储临时数据的目录
mkdir log   // 创建用于存储日志数据的目录

cd conf
cp zoo_sample.cfg zoo.cfg // 通过copy的方式创建zoo.cfg

vim zoo.cfg // 修改配置

修改如下配置:

dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log

下来就该启动zookeeper了:

/usr/local/zookeeper/bin/zkServer.sh start

几条常用命令(zkServer和zkCli脚本都在zk的bin目录下):

1. 启动ZK服务:   zkServer.sh start 
2. 查看ZK服务状态:  zkServer.sh status 
3. 停止ZK服务:  zkServer.sh stop 
4. 重启ZK服务:  zkServer.sh restart 
5. 连接服务器: zkCli.sh -server ip:port

1.2 集群模式

在zookeeper集群中,各个节点总共有三种角色,分别是:leader,follower,observer 集群模式我们采用模拟3台机器来搭建zookeeper集群。

搭建每台zk的步骤与上面搭建单点zk相同,只不过在配置zoo.cfg时有所不同,集群模式下肯定还要配置各个节点对不?

server.1=192.168.43.20:2888:3888  【2888:访问zookeeper的端口;3888:重新选举leader的端口】 
server.2=192.168.43.21:2888:3888 
server.3=192.168.43.20:2888:3888

在集群模式下,集群中每台机器都需要感知到整个集群是由哪几台机器组成的,在配置文件中,按照格式server.id=host:port:port,每一行代表一个机器配置

server.A=B:C:D中的 A/B/C/D 是什么意思?

  • A:Server ID:,用来标识该机器在集群中的机器序号;
  • B :是这个服务器的 ip地址; 如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端 口号
  • C: 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
  • D: 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举, 选出一个新的 Leader, 而这个端口就是用来执行选举时服务器相互通信的端口。

除此之外,在每台 zookeeper 机器上我们还需要在数据目录(dataDir)下创建一个 myid 文件,该文件只有一行内容,对应每台机器的Server ID数字。比如server.1的myid文件内容就是1。

cd ../data
touch myid
echo "1">>myid // server1机器的id是1

注意,必须确保每个服务器的 myid 文件中的数字不同,并且和自己所在机器的 zoo.cfg 中 server.id 的id值一致(id的范围是1~255)。

将配置好的 zookeeper 拷贝到 slave1 和 slave2,然后启动三个节点,启动/关闭方式同上。

2.Zookeeper常用命令

现在我们已经bin/zkCli.sh -server localhost:2181链接上了zk,那接下来该怎么操作呢?

Zookeeper 卸载 zookeeper安装使用_Zookeeper 卸载

2.1 状态信息

1.查看集群状态

status

2.查看指定znode的子节点

ls /key

Zookeeper 卸载 zookeeper安装使用_zookeeper_02

3.查看指定节点状态

stat /key

Zookeeper 卸载 zookeeper安装使用_数据_03

2.2 CRUD

1.创建节点

create /key value  // 默认是持久节点
create -e /key value  // 临时节点
create -s /key value  // 顺序节点
create -s -e /key value

Zookeeper 卸载 zookeeper安装使用_数据_04

2.查看指定znode的值

get /key

Zookeeper 卸载 zookeeper安装使用_数据_05

3.设置、修改指定节点数据

set /key value

Zookeeper 卸载 zookeeper安装使用_Zookeeper 卸载_06

  1. 删除指定节点
delete /key

2.3 事件监听

监听指定节点状态,注:监听只是一次,下一次变化(set)不再能收到反馈

get /key watch

Zookeeper 卸载 zookeeper安装使用_数据_07

最后,想了解更多命令的同学,这里放一个命令的参考链接…