Hadoop Part 9 - 部署 ZooKeeper 和 ZooKeeper 常用操作(选做)

文章导航

«返回课程汇总页面

【版本】

当前版本号v20210603-1

版本修改说明
v20210603-1修正hostname的错误
v20210603补充个别shell命令,修正start-zk.sh脚本错误
v20210601初始化版本

实验9.1 - 部署 ZooKeeper 集群模式

【实验名称】

实验9.1 - 部署 ZooKeeper 集群模式

【实验目的】

【实验环境】

【实验资源】

下载链接:https://pan.baidu.com/s/1ghde86wcK6pwg1fdSSWg0w
提取码:v3wv

【实验步骤】

  1. 在NodeA、NodeB、NodeC三个节点分别运行以下语句,注意提升为root权限执行。
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
su
echo "export ZK_HOME=/opt/zookeeper
export PATH=\$ZK_HOME/bin:\$PATH:." >>/etc/profile
su hadoop
source /etc/profile
  1. 使用 hadoop 登录NodeA节点。
su hadoop
  1. 上传 ZooKeeper 安装包apache-zookeeper-3.5.5-bin.tar.gz 到 NodeA 节点 /home/hadoop 目录。

  2. 解压apache-zookeeper-3.5.5-bin.tar.gz/home/hadoop 目录。

  3. 把解压以后的目录移到安装目录

sudo mv ~/apache-zookeeper-3.5.5-bin/* /opt/zookeeper
  1. 编辑 ZooKeeper 脚本加入JAVA_HOME 配置
cd $ZK_HOME/bin
vim zkServer.sh
export JAVA_HOME=/opt/jdk8
  1. 同步 NodeA 节点的 ZooKeeper 安装目录内容到 NodeB 和 NodeC。注意替换为你的学号后4位。
rsync -r /opt/zookeeper nodeb你的学号后4位:/opt
rsync -r /opt/zookeeper nodec你的学号后4位:/opt

rsync 是文件同步命令,可以用于本机和远程之间的文件同步 如果没有安装,可以使用 yum install rsync 安装

  1. 以下需要在 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
server.1=nodea你的学号后4位:2888:3888
server.2=nodeb你的学号后4位:2888:3888
server.3=nodec你的学号后4位:2888:3888
clientPortAddress=配置为相应节点的Hostname
ln -s /opt/zookeeper_config/zoo.cfg /opt/zookeeper/conf/zoo.cfg
  1. 以下需要在 NodeA、NodeB、NodeC 3个节点分别配置。配置 ZooKeeper 的 ID。
mkdir /opt/zookeeper_data
vim /opt/zookeeper_data/myid
  1. 编写 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你学号后4位 "/opt/zookeeper/bin/zkServer.sh start"
echo "Start NodeC ZooKeeper"
ssh nodec你学号后4位 "/opt/zookeeper/bin/zkServer.sh start"
  1. 编写 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你学号后4位 "/opt/zookeeper/bin/zkServer.sh stop"
echo "Stop NodeC ZooKeeper"
ssh nodec你学号后4位 "/opt/zookeeper/bin/zkServer.sh stop"
  1. 编写 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你学号后4位 "/opt/zookeeper/bin/zkServer.sh restart"
echo "Restart NodeC ZooKeeper"
ssh nodec你学号后4位 "/opt/zookeeper/bin/zkServer.sh restart"
  1. 修改创建的脚本的权限。
chmod 755 $ZK_HOME/bin/start-zk.sh
chmod 755 $ZK_HOME/bin/stop-zk.sh
chmod 755 $ZK_HOME/bin/restart-zk.sh
  1. 尝试使用以上创建的脚本,启动 ZooKeeper 集群。
start-zk.sh

【实验验证步骤】

  1. 在 NodeA、NodeB 和 NodeC 3个节点分别输入以下命令,查看 ZooKeeper 的 Mode。
zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: nodec你学号后4位.
Mode: follower
  1. 使用jps命令查看每个节点是否存在以下进程
QuorumPeerMain

实验9.2 - 使用 ZooKeeper Shell 命令访问 ZooKeeper 集群

【实验名称】

实验9.2 - 使用 ZooKeeper Shell 命令访问 ZooKeeper 集群

【实验目的】

【实验环境】

【实验资源】

下载链接:https://pan.baidu.com/s/1ghde86wcK6pwg1fdSSWg0w
提取码:v3wv

【实验步骤】

  1. 在 NodeA 启动 ZooKeeper,通过 ZooKeeper Shell 访问 ZooKeeper。注意替换你的学号。
start-zk.sh
zkCli.sh -server nodea你学号后4位:2181
  1. 连接成功后,查询有哪些命令。输入如下命令。
help
  1. 创建节点及子节点。
create /root1 data1
create /root2 data2
create /root1/child1 cdata1
create /root1/child2 cdata2
  1. 创建临时节点。
create -e /root4 data4
  1. 创建顺序节点。
create -s /root3 data3
  1. 查询某个节点下有哪些子节点。
ls /
ls /root1
  1. 查询某个节点下有哪些子节点带属性信息。
ls2 /
  1. 更新某个节点的值。
set /root1 newdata1
  1. 获取节点的状态信息。
stat /root1
  1. 读取某个节点。
get /root1
  1. 同步某个节点。
sync /root1
  1. 删除某个节点。
delete /root1/child1
  1. 递归删除某个节点。
rmr /root1
  1. 设置配额(下面限制子节点数量)。
setquota -n 4 /root2
  1. 删除配额。
delquota /root2
  1. 设置配额(下面限制数据长度)。
setquota -b 400 /root2
  1. 显示配额。
listquota /root2
  1. 关闭当前连接,可用 connect 再次连接,不会退出客户端。
close
  1. 连接服务器。
connect
  1. 关闭连接并退出连接客户端。
quit

实验9.3 - 使用 ZooInspector 客户端访问 ZooKeeper 集群

【实验名称】

实验9.3 - 使用 ZooInspector 客户端访问 ZooKeeper 集群

【实验目的】

【实验环境】

【实验资源】

下载链接:https://pan.baidu.com/s/1ghde86wcK6pwg1fdSSWg0w
提取码:v3wv

【实验步骤】

  1. 确保你电脑的系统安装了 JDK8 或以上。下载 ZooInspector.zip 工具包并解压。执行 run.bat 启动 ZooInspector。

  2. 在 NodeA 启动 ZooKeeper 集群。

start-zk.sh
  1. 使用 ZooInspector 连接 NodeA 节点。

  2. 创建一个节点 /MyNode1

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

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