Zookeeper 集群安装与脚本化管理详解

安装之前:先关闭所有服务器的防火墙!!!!!!!!!!!!

systemctl stop firewalld 关闭防火墙

systemctl disable firewalld 开机不启动防火墙

1.上传 /opt/modules下面

2.解压到/opt/installs下面

复制代码
tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/installs/

3.重命名

复制代码
mv zookeeper-3.4.10/ zookeeper

4.修改配置文件

进入/opt/installs/zookeeper/conf文件夹,重命名zoo_sample.cfg

复制代码
mv  zoo_sample.cfg  zoo.cfg

将配置文件修改

复制代码
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/opt/installs/zookeeper/zkData
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=bigdata01:2888:3888
server.2=bigdata02:2888:3888
server.3=bigdata03:2888:3888

记得在zookeeper中创建zkData文件夹,以及myid文件

5.配置环境变量:

复制代码
export ZOOKEEPER_HOME=/opt/installs/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

刷新一下环境变量:

复制代码
source /etc/profile

接着配置第二台和第三台:

复制代码
xsync.sh /opt/installs/zookeeper

xsync.sh /etc/profile

xcall.sh source /etc/profile

在bigdata02中,修改myid 为2

bigdata03中,修改myid为3

6.每一台电脑上,都启动zkServer

zkServer.sh start

查看状态:

因为zookeeper安装的节点比较多,每一个一个个操作非常的繁琐,所以我们可以编写一个脚本,管理zookeeper集群。

在/usr/local/bin 下面,创建zk.sh

复制代码
#!/bin/bash

# 获取参数
COMMAND=$1
if [ ! $COMMAND ]; then
    echo "please input your option in [start | stop | status]"
    exit -1
fi
if [ $COMMAND != "start" -a $COMMAND != "stop" -a $COMMAND != "status" ]; then
    echo "please input your option in [start | stop | status]"
    exit -1
fi

# 所有的服务器
HOSTS=( bigdata01 bigdata02 bigdata03 )
for HOST in ${HOSTS[*]}
do
    ssh -T $HOST << TERMINATOR
    echo "---------- $HOST ----------"
    zkServer.sh $COMMAND 2> /dev/null | grep -ivh SSL
    exit
TERMINATOR
done

加权限chomd u+x zk.sh

使用:

zk.sh start

zk.sh stop

zk.sh status

相关推荐
江畔柳前堤2 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型
霸道流氓气质7 小时前
RabbitMQ 延迟队列与死信队列:原理、实现与实战
分布式·rabbitmq·ruby
爱吃面的猫8 小时前
大数据Kafka3.x之——Kafka3.3.0安装与使用(详细)
大数据·分布式·zookeeper
阿里云云原生10 小时前
2026云栖大会定档!
云原生
人间凡尔赛12 小时前
eBPF + WebAssembly 正在重写服务网格数据平面:2026 云原生架构的“去 Sidecar“革命
后端·云原生·架构
云烟成雨TD13 小时前
Micrometer 系列【33】Spring Boot Micrometer Metrics 自动配置模块解析
spring boot·云原生·micrometer
SLD_Allen16 小时前
Kubernetes + Ray + Volcano:云原生AI训练调度体系
人工智能·云原生·kubernetes
小张同学a.16 小时前
zabbix企业级监控平台4——分布式监控与grafana数据可视化
linux·运维·数据库·分布式·信息可视化·zabbix·grafana
A-刘晨阳17 小时前
Kubernetes 非共享存储详解:emptyDir 与 hostPath 从入门到实践
运维·云原生·容器·kubernetes·hostpath·emptydir
风曦Kisaki17 小时前
# Kubernetes(K8s)笔记Day15:K8s网络工作原理【Pod 网络模型,CNI 网络插件,Calico 工作模式详解,BGP协议,路由反射器】
运维·网络·nginx·云原生·容器·kubernetes