1、将zookeeper安装包上传到/opt/software目录下
2、执行tar -zvcf zookeeper-3.4.5.tar.gz -C /opt/module/zookeeper-3.4.5进行解压
3、进入home下的普通用户目录,编辑.bashrc文件
命令:vim .bashrc
文件编辑如下,ZK_HOME=后面填写自己对应的安装目录
4、在zookeeper安装路径下创建zkdata目录与logs目录,用于存储临时文件
命令:
mkdir zookeeper-3.4.5/zkdata
mkdir zookeeper-3.4.5/logs
5、在/training/zookeeper-3.4.5/tmp目录下创建一个myid的空文件:
命令:echo 1 > /opt/soft_installed/zookeeper-3.4.5/zkdata/myid
6、配置zoo.cfg文件(该文件并不存在,需要创建或者从模板文件复制)
进入到/opt/soft_installed/zookeeper-3.4.5/conf目录下,将zoo_sample.cfg复制为zoo.cfg,执行如下复制命令:
cp zoo_sample.cfg zoo.cfg
7、编辑zoo.cfg文件
命令:vim zoo.cfg
添加配置: dataDir=/zookeeper安装目录/zkdata
dataLogDir=/zookeeper安装目录/logs
server.1=设备1IP:2888:3888
server.2=设备2IP:2888:3888
server.3=设备3IP:2888:3888
8、使用集群分发脚本,将zookeeper分发到其他设备,如果没有集群分发脚本,可以单独在每个设备上进行安装
9、在普通用户的bin目录下,编写集群启动脚本
脚本如下:
#!/bin/bash
# 定义 ZooKeeper 节点
ZK_NODES=("hadoop102" "hadoop103" "hadoop104")
# 定义 ZooKeeper 安装路径
ZK_HOME="/opt/zookeeper"
# 启动 ZooKeeper
for node in "${ZK_NODES[@]}"; do
echo "Starting ZooKeeper on ${node}..."
ssh ${node} "${ZK_HOME}/bin/zkServer.sh start"
done
10、同理,添加集群停止脚本
脚本如下:
#!/bin/bash
# 定义 ZooKeeper 节点
ZK_NODES=("hadoop102" "hadoop103" "hadoop104")
# 定义 ZooKeeper 安装路径
ZK_HOME="/opt/zookeeper"
# 关闭 ZooKeeper
for node in "${ZK_NODES[@]}"; do
echo "Stopping ZooKeeper on ${node}..."
ssh ${node} "${ZK_HOME}/bin/zkServer.sh stop"
done
11、再添加一个查看集群jps脚本
脚本:
#!/bin/bash
# 定义 ZooKeeper 节点
ZK_NODES=("hadoop102" "hadoop103" "hadoop104")
# 查看每个节点上所有的 Java 进程
for node in "${ZK_NODES[@]}"; do
echo "Java processes on ${node}:"
ssh ${node} "jps"
done
12、添加权限
13、Source一下
命令:source /etc/profile
14、启动zookeeper集群
15、查看jps
16、关闭集群zookeeper
17、查看jps
补充(防止后续脚本过多,将zookeeper启动和关闭脚本合并):
1、代码
#!/bin/bash
# 定义 zookeeper 集群节点列表
NODES="hadoop102 hadoop103 hadoop104"
# 定义 zookeeper 安装路径
ZOOKEEPER_HOME=/opt/module/zookeeper
# 定义 zookeeper 配置文件路径
ZOOKEEPER_CONF=$ZOOKEEPER_HOME/conf/zoo.cfg
# 将节点列表转换为数组
NODES_ARRAY=($NODES)
# 获取数组长度
NODES_COUNT=${#NODES_ARRAY[@]}
# 定义启动命令和关闭命令
START_COMMAND="$ZOOKEEPER_HOME/bin/zkServer.sh start $ZOOKEEPER_CONF"
STOP_COMMAND="$ZOOKEEPER_HOME/bin/zkServer.sh stop $ZOOKEEPER_CONF"
# 启动 zookeeper 集群
start() {
# 循环启动每个节点
for ((i=0; i<$NODES_COUNT; i++)); do
ssh ${NODES_ARRAY[i]} "$START_COMMAND"
done
}
# 关闭 zookeeper 集群
stop() {
# 循环关闭每个节点
for ((i=0; i<$NODES_COUNT; i++)); do
ssh ${NODES_ARRAY[i]} "$STOP_COMMAND"
done
}
# 判断命令行参数,执行相应操作
case $1 in
start)
start
;;
stop)
stop
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
2、添加权限:
3、使用: