zookeeper 集群搭建

1. 依赖

该教程依赖已经准备好的 linux 环境,请先查看:

LINUX 集群环境准备

2. 下载和解压

点击下载

tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /opt/module
cd /opt/module
mv apache-zookeeper-3.8.4-bin zookeeper

3. 配置

3.1. 创建集群唯一标识

准备一个数据文件夹,并创建节点唯一标识 myid

cd /opt/module/zookeeper
mkdir data
cd data
vim myid

# 写入一个节点的唯一标识,如数字:2
# 注意每台服务器都需要设置成不同的数字

3.2. JAVA 进程配置文件

这个配置可以不配,但是由于我们学习阶段,资源有限,这里则特意将进程的内存调小,防止资源不够

cd /opt/module/zookeeper/conf
vim java.env

# 文件中可以写一点 JAVA 程序参数配置,如堆内存
export JVMFLAGS="-Xms64m -Xmx64m $JVMFLAGS"

3.3. zookeeper 程序配置文件

官方存在一个配置文件的样板,我们可以通过复制样板修改自己的配置文件

cd /opt/module/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

配置文件内容大致如下

# 服务端与客户端的心跳时间
tickTime=2000

# 主节点和从节点初始化连接的心跳次数上限
initLimit=10

# 主节点和从节点同步通讯的心跳次数上限
syncLimit=5

# 数据储存路径,默认 tmp 为临时目录
dataDir=/opt/module/zookeeper/data

# 数据目录下数据快照的数量
autopurge.snapRetainCount=1

# 清理快照的时间间隔,单位小时,0 为不清理
autopurge.purgeInterval=0

# 客户端连接端口
clientPort=2181

# 最大的客户端连接数量
maxClientCnxns=60

# 集群节点配置,配置格式如下,[] 表示变量
# server.[myid]=[host | ip]:[主从通信端口]:[重选主机的端口]
server.1=mitchell-101:2888:3888
server.2=mitchell-102:2888:3888
server.3=mitchell-103:2888:3888

4. 分发

将 zookeeper 和 修改的配置文件一起分发给其它机器

xsync /opt/module/zookeeper

ps:注意,分发完成后需要修改其它机器上的 3.1 步骤创建的 myid 文件的数字,保证其唯一

5. 帮助脚本

集群环境下,不管是启动还是关闭都是一件比较麻烦的事情,这里准备一个脚本,从而实现一次性的启动和关闭,方便操作

vim /opt/module/bin/mzookeeper.sh
chmod +x mzookeeper.sh

脚本内容参考

#!/bin/bash

if [ $# -lt 1 ]
then
	echo "请输入参数 start、stop 或 status"
	exit;
fi

case $1 in
"start")
	echo "=============================== 启动 zookeeper 集群 ==============================="
    for i in mitchell-101 mitchell-102 mitchell-103
    do
        echo "------------------------------- 启动 $i  -------------------------------"
        ssh $i "/opt/module/zookeeper/bin/zkServer.sh start"
	done
;;
"stop")
	echo "=============================== 停止 zookeeper 集群 ==============================="
    for i in mitchell-101 mitchell-102 mitchell-103
    do
        echo "------------------------------- 停止 $i  -------------------------------"
        ssh $i "/opt/module/zookeeper/bin/zkServer.sh stop"
	done
;;
"status")
	echo "=============================== 查看 zookeeper 集群 ==============================="
    for i in mitchell-101 mitchell-102 mitchell-103
    do
        echo "------------------------------- 查看 $i  -------------------------------"
        ssh $i "/opt/module/zookeeper/bin/zkServer.sh status"
	done
;;
*)
	echo "请输入参数 start、stop 或 status"
;;
esac
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值