zookeeper集群简单部署

2021-11-19 10:38:41 浏览数 (1)

1、ZooKeeper简介

ZooKeeper是一个开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现。ZooKeeper为分布式应用提供一致性服务,提供的功能包括:分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)、分布式锁(Distributed Lock)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以单机模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。

2、集群节点规划

主机名

IP地址

操作系统版本

zk-ck-fk-01

172.21.204.76

CentOS 7.9.2009

zk-ck-fk-02

172.21.204.77

CentOS 7.9.2009

zk-ck-fk-03

172.21.204.78

CentOS 7.9.2009

3、java依赖环境设置

每个节点新建目录和解压文件

mkdir -pv /usr/java tar -zxvf jdk-8u271-linux-x64.tar.gz -C /usr/java

每个节点设置全局环境变量

vi /etc/profile.d/jdk8.sh export JAVA_HOME=/usr/java/jdk1.8.0_271 export JRE_HOME=/usr/java/jdk1.8.0_271/jre export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib

每个节点使配置生效

source /etc/profile.d/jdk8.sh

4、部署三节点zookeeper集群

每个节点下载apache-zookeeper-3.6.2-bin.tar.gz二进制安装包

软件包下载地址: https://mirrors.bfsu.edu.cn/apache/zookeeper

每个节点创建目录并解压tar包到指定目录

mkdir -pv /usr/local/zookeeper/ tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz -C /usr/local/zookeeper/ mv apache-zookeeper-3.6.2-bin zookeeper-3.6.2

每个节点创建zookeeper数据目录和日志目录

mkdir -p /usr/local/zookeeper/zookeeper-3.6.2/{zkdata,zklogs}

每个节点进入zookeeper的conf目录,拷贝zoo_sample.cfg为zoo.cfg,修改zoo.cfg文件主要配置参数

tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper/zookeeper-3.6.2/zkdata dataLogDir=/usr/local/zookeeper/zookeeper-3.6.2/zklogs clientPort=2181 maxClientCnxns=100 autopurge.snapRetainCount=10 autopurge.purgeInterval=24 server.1= 172.21.204.76:2888:3888 server.2= 172.21.204.77:2888:3888 server.3= 172.21.204.78:2888:3888

每个节点创建 ServerID 标识,设置myid:

zookeeper 集群模式下需要配置一个myid 文件,这个文件需要放在 dataDir 目录下。文件里面有一个数据就是 A 的值(该 A 就是 zoo.cfg 文件中 server.A=B:C:D 中的 A)

在 server.1 服务器上创建 myid 文件 echo "1" > /usr/local/zookeeper/zookeeper-3.6.2/zkdata/myid 在 server.2 服务器上创建 myid 文件 echo "2" > /usr/local/zookeeper/zookeeper-3.6.2/zkdata/myid 在 server.3 服务器上创建 myid 文件 echo "3" > /usr/local/zookeeper/zookeeper-3.6.2/zkdata/myid

进入zookeeper的bin目录,启动zookeeper服务,每个节点都需要启动

./zkServer.sh start

启动之后查看每个节点的状态

./zkServer status

其中有一个节点是leader,有两个节点是follower,证明zookeeper集群是部署成功的

测试zookeeper连接

./zkCli.sh -server 172.21.204.76:2182

如果出现拒绝连接,查看防火墙是否关闭,重启zookeeper,或排查日志是否有配置错误

相关参数说明:

配置项

名称

参数说明

tickTime

CS通信心跳间隔

服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每间隔 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。

initLimit

LF初始通信时限

集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数

syncLimit

LF同步通信时限

集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数

dataDir

数据文件目录

Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里

dataLogDir

日志文件目录

Zookeeper保存日志文件的目录

clientPort

客户端连接端口

客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求

server.N

服务器名称与地址

从N开始依次为:服务编号、服务地址、LF通信端口、选举端口;例如:server.1=172.21.204.76:2888:3888

0 人点赞