【版本】
当前版本号v20250213
任务6.1 - 部署 ZooKeeper 集群模式
【任务目的】
【任务环境】
- Windows 7 以上64位操作系统
- JDK8
- VMWare Workstation Pro
- Hadoop 2.7.3
- CentOS 7
【任务资源】
【任务说明】
【任务步骤】
- 在NodeA、NodeB、NodeC三个节点分别运行以下语句,注意提升为root权限执行。
- 分别创建 ZooKeeper 的安装目录、数据存放目录和配置文件存放目录。
| su |
| mkdir /opt/zookeeper |
| mkdir /opt/zookeeper_data |
| mkdir /opt/zookeeper_config |
| chown hadoop:wheel /opt/zookeeper |
| chown hadoop:wheel /opt/zookeeper_data |
| chown hadoop:wheel /opt/zookeeper_config |
复制
- 提升 root 用户权限执行以下语句,加入 ZooKeeper 环境变量。
| su |
| echo "export ZK_HOME=/opt/zookeeper |
| export PATH=\$ZK_HOME/bin:\$PATH:." >>/etc/profile |
复制
复制
复制
- 使用 hadoop 登录NodeA节点。
复制
上传 ZooKeeper 安装包apache-zookeeper-3.5.5-bin.tar.gz
到 NodeA 节点 /home/hadoop
目录。
解压apache-zookeeper-3.5.5-bin.tar.gz
到/home/hadoop
目录。
把解压以后的目录移到安装目录
| sudo mv ~/apache-zookeeper-3.5.5-bin/* /opt/zookeeper |
复制
- 编辑 ZooKeeper 脚本加入JAVA_HOME 配置
| cd $ZK_HOME/bin |
| vim zkServer.sh |
复制
| export JAVA_HOME=/opt/jdk8 |
复制
- 同步 NodeA 节点的 ZooKeeper 安装目录内容到 NodeB 和 NodeC。注意替换为你的学号后3位。
| rsync -r /opt/zookeeper nodeb你的学号后3位:/opt |
| rsync -r /opt/zookeeper nodec你的学号后3位:/opt |
复制
rsync 是文件同步命令,可以用于本机和远程之间的文件同步
如果没有安装,可以使用 yum install rsync 安装
- 以下需要在 NodeA、NodeB、NodeC 3个节点分别配置。
| cd /opt/zookeeper/conf |
| cp zoo_sample.cfg /opt/zookeeper_config/zoo.cfg |
复制
| vim /opt/zookeeper_config/zoo.cfg |
复制
| dataDir=/opt/zookeeper_data |
复制
- (4)在文件末尾加入各个节点的配置。注意替换为你的学号后3位。注意替换你的学号。
| server.1=nodea你的学号后3位:2888:3888 |
| server.2=nodeb你的学号后3位:2888:3888 |
| server.3=nodec你的学号后3位:2888:3888 |
复制
- (5)在文件末尾加入各个节点的绑定的地址。
clientPortAddress
的值在NodeA为nodea你学号后3位
,NodeB 为nodeb你学号后3位
,NodeC 为nodec你学号后3位
。
| clientPortAddress=配置为相应节点的Hostname |
复制
- (6)创建软连接,把配置文件指向 ZooKeeper 的默认配置目录。
| ln -s /opt/zookeeper_config/zoo.cfg /opt/zookeeper/conf/zoo.cfg |
复制
- 以下需要在 NodeA、NodeB、NodeC 3个节点分别配置。配置 ZooKeeper 的 ID。
| mkdir /opt/zookeeper_data |
复制
- NodeA输入1,NodeB输入2,NodeC输入3。
| vim /opt/zookeeper_data/myid |
复制
- 编写 ZooKeeper 集群启动脚本。注意替换你的学号。
| vim $ZK_HOME/bin/start-zk.sh |
复制
输入以下内容
| #!/usr/bin/env bash |
| echo "Start NodeA ZooKeeper" |
| zkServer.sh start |
| echo "Start NodeB ZooKeeper" |
| ssh nodeb你学号后3位 "/opt/zookeeper/bin/zkServer.sh start" |
| echo "Start NodeC ZooKeeper" |
| ssh nodec你学号后3位 "/opt/zookeeper/bin/zkServer.sh start" |
复制
- 编写 ZooKeeper 集群关闭脚本。注意替换你的学号。
| vim $ZK_HOME/bin/stop-zk.sh |
复制
输入以下内容
| #!/usr/bin/env bash |
| echo "Stop NodeA ZooKeeper" |
| zkServer.sh stop |
| echo "Stop NodeB ZooKeeper" |
| ssh nodeb你学号后3位 "/opt/zookeeper/bin/zkServer.sh stop" |
| echo "Stop NodeC ZooKeeper" |
| ssh nodec你学号后3位 "/opt/zookeeper/bin/zkServer.sh stop" |
复制
- 编写 ZooKeeper 集群重启脚本。注意替换你的学号。
| vim $ZK_HOME/bin/restart-zk.sh |
复制
输入以下内容
| #!/usr/bin/env bash |
| echo "Restart NodeA ZooKeeper" |
| zkServer.sh restart |
| echo "Restart NodeB ZooKeeper" |
| ssh nodeb你学号后3位 "/opt/zookeeper/bin/zkServer.sh restart" |
| echo "Restart NodeC ZooKeeper" |
| ssh nodec你学号后3位 "/opt/zookeeper/bin/zkServer.sh restart" |
复制
- 修改创建的脚本的权限。
| chmod 755 $ZK_HOME/bin/start-zk.sh |
| chmod 755 $ZK_HOME/bin/stop-zk.sh |
| chmod 755 $ZK_HOME/bin/restart-zk.sh |
复制
- 尝试使用以上创建的脚本,启动 ZooKeeper 集群。
复制
【任务验证步骤】
- 在 NodeA、NodeB 和 NodeC 3个节点分别输入以下命令,查看 ZooKeeper 的 Mode。
复制
- 以下为正常的输出例子,其中Mode 有可能为 follower 或 leader:
| ZooKeeper JMX enabled by default |
| Using config: /opt/zookeeper/bin/../conf/zoo.cfg |
| Client port found: 2181. Client address: nodec你学号后3位. |
| Mode: follower |
复制
- 使用
jps
命令查看每个节点是否存在以下进程
复制
任务6.2 - 使用 ZooKeeper Shell 命令访问 ZooKeeper 集群
【任务目的】
【任务环境】
- Windows 7 以上64位操作系统
- JDK8
- VMWare Workstation Pro
- Hadoop 2.7.3
- CentOS 7
【任务资源】
【任务内容】
- 按要求使用 ZooKeeper Shell 命令访问 ZooKeeper 集群
【任务步骤】
- 在 NodeA 启动 ZooKeeper,通过 ZooKeeper Shell 访问 ZooKeeper。注意替换你的学号。
复制
| zkCli.sh -server nodea你学号后3位:2181 |
复制
- 连接成功后,查询有哪些命令。输入如下命令。
复制
- 创建节点及子节点。
| create /root1 data1 |
| create /root2 data2 |
| create /root1/child1 cdata1 |
| create /root1/child2 cdata2 |
复制
- 创建临时节点。
复制
- 创建顺序节点。
复制
- 查询某个节点下有哪些子节点。
复制
- 查询某个节点下有哪些子节点带属性信息。
复制
- 更新某个节点的值。
复制
- 获取节点的状态信息。
复制
- 读取某个节点。
复制
- 同步某个节点。
复制
- 删除某个节点。
复制
- 递归删除某个节点。
复制
- 设置配额(下面限制子节点数量)。
复制
- 删除配额。
复制
- 设置配额(下面限制数据长度)。
复制
- 显示配额。
复制
- 关闭当前连接,可用 connect 再次连接,不会退出客户端。
复制
- 连接服务器。
复制
- 关闭连接并退出连接客户端。
复制
任务6.3 - 使用 ZooInspector 客户端访问 ZooKeeper 集群(选做)
【任务目的】
【任务环境】
- Windows 7 以上64位操作系统
- JDK8
- Hadoop 3
- CentOS 7
【任务资源】
复制
【任务内容】
- 按要求使用 ZooInspector 客户端访问 ZooKeeper 集群
【任务步骤】
确保你电脑的系统安装了 JDK8 或以上。下载 ZooInspector.zip 工具包并解压。执行 run.bat 启动 ZooInspector。

在 NodeA 启动 ZooKeeper 集群。
复制
使用 ZooInspector 连接 NodeA 节点。

创建一个节点 /MyNode1
。

在节点 /MyNode1
创建一个 Watch 进行监视。

修改节点 /MyNode1
的内容,观察时候能够获得通知。
