单机版
1、上传安装包
2、解压至指定位置
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/program/
3、配置前操作
进入解压后的Zookeeper文件夹中,创建相关文件夹以存放数据和日志
cd /opt/program/apache-zookeeper-3.6.3-bin/
mkdir data
mkdir logs
4、修改配置文件
进入解压后的Zookeeper文件夹的conf目录中,将zoo_sample.cfg复制一份重命名为zoo.cfg
# 复制pwd显示的当前所在路径
pwd
cd conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/opt/program/apache-zookeeper-3.6.3-bin/data
dataLogDir=/opt/program/apache-zookeeper-3.6.3-bin/logs
5、配置环境变量
vim /etc/profile.d/my_env.sh
# 上面sh文件为自定义创建,若未创建则应为如下命令
vim /etc/profile
#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/program/apache-zookeeper-3.6.3-bin
export ZOOKEEPER_PATH=${ZOOKEEPER_HOME}/bin
export PATH=${PATH}:${ZOOKEEPER_PATH}
刷新环境变量
source /etc/profile
6、启动与查看
配置了环境变量之后,可在任意目录下直接使用zkServer.sh,未配置则需要进入Zookeeper目录中才能使用
以下为Zookeeper的启动、查看、重启、停止
zkServer.sh start
zkServer.sh status
zkServer.sh restart
zkServer.sh stop
集群版
准备工作
上传安装包
解压安装包
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz -C /opt/program/
前置工作
进入Zookeeper的安装目录,新建文件夹data和logs
mkdir data
mkdir logs
进入data目录中,新建一个myid文件,写入id为1
cd data
echo '1'>myid
# 可使用cat myid查看
配置文件
进入Zookeeper安装目录下的conf文件夹
将zoo_sample.cfg复制一份重命名为zoo.cfg
cd conf/
cp zoo_sample.cfg zoo.cfg
先使用pwd查看当前所处位置,复制当前位置
再编辑zoo.cfg
pwd
vim zoo.cfg
dataDir=/opt/program/apache-zookeeper-3.6.3-bin/data
dataLogDir=/opt/program/apache-zookeeper-3.6.3-bin/logs
server.1=hadoop102:2888:3888
server.2=hadoop103:2888:3888
server.3=hadoop104:2888:3888
配置环境变量
vim /etc/profile.d/my_env.sh
#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/program/apache-zookeeper-3.6.3-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin
分发操作
将配置文件分发给hadoop103和hadoop104
# 进入/etc/profile.d目录下,再执行
xsync my_env.sh
# 分发Zookeeper的压缩包
cd /opt/package
xsync apache-zookeeper-3.6.3-bin.tar.gz
# 分发Zookeeper解压后的文件
cd /opt/program/
xsync apache-zookeeper-3.6.3-bin/
需要修改hadoop103和hadoop104中的data目录中的myid
hadoop103修改为2,hadoop104修改为3
注意:上面修改环境变量时,未刷新。因此分发之后需要在三台机器上分别执行
source /etc/profile
启动集群
在三个节点分别执行如下命令(可在任何位置执行,因为配置了环境变量)
zkServer.sh start
使用如下命令查看ZooKeeper的状态
zkServer.sh status
将看到一个leader和两个follower,代表ZooKeeper启动成功
# 停止Zookeeper
zkServer.sh stop
# 重启Zookeeper
zkServer.sh restart
自定义zk脚本
在用户的家目录的bin目录下创建一个myzk.sh
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit;
fi
case $1 in
"start")
echo "========== 启动 Zookeeper集群 =========="
echo "========== 启动 hadoop102中的Zookeeper =========="
ssh hadoop102 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" start
echo "========== 启动 hadoop103中的Zookeeper =========="
ssh hadoop103 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" start
echo "========== 启动 hadoop104中的Zookeeper =========="
ssh hadoop104 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" start
;;
"status")
echo "========== 查看 Zookeeper集群 =========="
echo "========== 查看 hadoop102中的Zookeeper =========="
ssh hadoop102 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" status
echo "========== 查看 hadoop103中的Zookeeper =========="
ssh hadoop103 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" status
echo "========== 查看 hadoop104中的Zookeeper =========="
ssh hadoop104 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" status
;;
"restart")
echo "========== 重新启动 Zookeeper集群 =========="
echo "========== 重新启动 hadoop102中的Zookeeper =========="
ssh hadoop102 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" restart
echo "========== 重新启动 hadoop103中的Zookeeper =========="
ssh hadoop103 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" restart
echo "========== 重新启动 hadoop104中的Zookeeper =========="
ssh hadoop104 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" restart
;;
"stop")
echo "========== 停止 Zookeeper集群 =========="
echo "========== 停止 hadoop102中的Zookeeper =========="
ssh hadoop102 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" stop
echo "========== 停止 hadoop103中的Zookeeper =========="
ssh hadoop103 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" stop
echo "========== 停止 hadoop104中的Zookeeper =========="
ssh hadoop104 "/opt/program/apache-zookeeper-3.6.3-bin/bin/zkServer.sh" stop
;;
*)
echo "Input Args Error..."
;;
esac
授予权限
chmod 777 myzk.sh
此时即可通过此shell脚本完成集群的开启、查看、停止和重启