目录
前情提要:延续上篇【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包含的所有子节点