前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zookeeper集群简单部署

zookeeper集群简单部署

原创
作者头像
天天向上_82634
修改2021-11-19 10:38:41
3560
修改2021-11-19 10:38:41
举报

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、ZooKeeper简介
  • 2、集群节点规划
  • 3、java依赖环境设置
  • 4、部署三节点zookeeper集群
  • 相关参数说明:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档