目录
前情提要:延续上篇【Hadoop和Hbase集群配置】继续配置Zookeeper,开启三台虚拟机Hadoop1、Hadoop2、Hadoop3,进入终端,都启动SSH服务systemctl restart sshd,进入远程连接工具SecureCRT(也可以直接在虚拟机终端操作),具体操作参考上篇文章。
往期文章:【Hadoop和Hbase集群配置】3台虚拟机、jdk+hadoop+hbase下载和安装、环境配置和集群测试-CSDN博客
一、安装Zookeeper
1、进入/export/software,使用rz上传zookeeper安装包,如下所示:

2、在/export/software上ll命令查看安装包是否上传成功

3、将ZooKeeper安装包解压至/export/servers目录
tar -zxvf zookeeper-3.4.10.tar.gz -C /export/servers/

4、在/export/servers上ll命令查看安装包是否解压成功

二、配置Zookeeper集群
1、进入虚拟机Hadoop1中ZooKeeper安装目录的conf目录
cd /export/servers/zookeeper-3.4.10/conf

2、复制ZooKeeper模板文件zoo_sample.cfg创建文件zoo.cfg
cp zoo_sample.cfg zoo.cfg

3、编辑文件zoo.cfg
vi zoo.cfg

修改内容为
dataDir=/export/data/zookeeper/zkdata
clientPort=2181
添加内容为(对应三台虚拟机映射)
server.1=192.168.204.134:2888:3888
server.2=192.168.204.135:2888:3888
server.3=192.168.204.136:2888:3888

4、分发zookeeper到Hadoop2和Hadoop3
scp -r /export/servers/zookeeper-3.4.10 root@hadoop2:/export/servers/
scp -r /export/servers/zookeeper-3.4.10 root@hadoop3:/export/servers/


5、创建数据持久化目录
mkdir -p /export/data/zookeeper/zkdata
Hadoop1中

Hadoop2中

Hadoop3中

6、创建myid文件,三台虚拟机的myid值依次为1、2、3
Hadoop1中,echo 1 > /export/data/zookeeper/zkdata/myid

Hadoop2中,echo 2 > /export/data/zookeeper/zkdata/myid

Hadoop3中,echo 3 > /export/data/zookeeper/zkdata/myid

7、配置zookeeper系统环境变量,进入环境变量文件profile

添加zookeeper环境语句
export ZK_HOME=/export/servers/zookeeper-3.4.10
export PATH=PATH:ZK_HOME/bin

初始化profile

8、给Hadoop2和Hadoop3分发profile
scp -r /export/servers/zookeeper-3.4.10/ hadoop2:/export/servers/
scp -r /export/servers/zookeeper-3.4.10/ hadoop3:/export/servers/

初始化profile


三、Zookeeper服务的启动与关闭
1、在三台虚拟机启动zookeeper集群
zkServer.sh start
Hadoop1

Hadoop2

Hadoop3

2、查看zookeeper集群状态
zkServer.sh status
Hadoop1

Hadoop2

Hadoop3

四、Zookeeper的shell操作
1、启动客户端工具zkCli
基于完全分布式模式部署的ZooKeeper处于启动状态。在虚拟机Hadoop2中启动客户端工具zkCli,以连接虚拟机Hadoop3的ZooKeeper服务为例。
zkCli.sh -server hadoop3:2181

2、create命令,创建ZNode
(1)创建持久节点persistent_node,指定持久节点的数据内容为apple
create /persistent_node apple

(2)创建持久顺序节点seq_persistent_node,指定持久顺序节点的数据内容为pear
create -s /persistent_node/seq_persistent_node pear

(3)创建临时节点ephemeral_node,指定临时节点的数据内容为banana
create -e /persistent_node/ephemeral_node banana

(4)创建临时顺序节点seq_ephemeral_node,指定临时顺序节点的数据内容为orange
create -s -e /persistent_node/seq_ephemeral_node orange

(5)在持久节点persistent_node下创建一个名为children_node的子节点。
创建:create /persistent_node/children_node
删除:Delete /persistent_node/children_node

(6)查看节点创建情况,使用get命令或者ls命令
get /persistent_node
ls /persistent_node

- ls命令,查看指定ZNode的子节点或属性
(1)查看持久节点persistent_node的子节点(3个)
ls /persistent_node

(2)退出zkCli,再进入,查看持久节点,
退出:quit
进入:zkCli.sh -server hadoop3:2181

查看:ls /persistent_node
临时节点和临时顺序节点已经自动删除

(3)查看持久节点属性
ls2 /persistent_node

(4)递归查看根节点的所有子节点
Ls /

(5)向持久节点 persistent_node 注册 Watcher,监听该 ZNode 的变化
get /

4、get命令
查看持久节点persistent_node的数据内容。
get /persistent_node

5、set命令
修改持久节点persistent_node的数据内容为Green。
set /persistent_node Green

6、delete命令
先创建持久节点persistent_node的子节点children_node
create /persistent_node/children_node "Hello, ZooKeeper!" world:anyone:crdwa
ls /persistent_node
再删除持久节点persistent_node的子节点children_node
delete /persistent_node/children_node

7、rmr命令
递归删除持久节点persistent_node包含的所有子节点
