Zookeeper集群部署之单机模式、伪集群模式、集群模式
Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
一、ZooKeeper介绍
Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
官网:[https://zookeeper.apache.org](https://zookeeper.apache.org)
二、ZooKeeper安装
zookeeper有单机、伪集群、集群三种部署方式,本例使用的zookeeper版本是:zookeeper-3.5.7
注意: 需要有Java环境的支持,JDK的安装这里不做说明
1.单机模式
1.1 安装与配置
- 下载好zookeeper,拷贝 apache-zookeeper-3.5.7-bin.tar.gz 安装包到 Linux 系统下
- 解压到指定目录
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
-
为了使用方便,原名称过长,可以修改名称,不修改也不影响
mv apache-zookeeper-3.5.7 -bin/ zookeeper-3.5.7
-
配置修改,将/opt/module/zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg
mv zoo_sample.cfg zoo.cfg
-
打开 zoo.cfg 文件,修改 dataDir 路径
vim zoo.cfg
修改如下内容:
dataDir=/opt/module/zookeeper-3.5.7/zkData -
在/opt/module/zookeeper-3.5.7/这个目录下创建 zkData 文件夹
mkdir zkData
1.2 操作 Zookeeper
-
启动 Zookeeper
./zkServer.sh start
-
查看进程是否启动
jps -l
-
查看状态
./zkServer.sh status
-
启动客户端
./zkCli.sh
-
退出客户端
quit
-
停止 Zookeeper
./zkServer.sh stop
1.3 配置文件说明
# The number of milliseconds of each tick
# tickTime:CS通信心跳数
# Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
# initLimit:LF初始通信时限
# 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
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:数据文件目录
# Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
dataDir=/opt/module/zookeeper-3.5.7/zkData
# dataLogDir:日志文件目录
# Zookeeper保存日志文件的目录。
dataLogDir=/opt/module/zookeeper-3.5.7/logs
# the port at which the clients will connect
# clientPort:客户端连接端口
# 客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
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
# 保留数量3
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
# 清理时间间隔1小时
#autopurge.purgeInterval=1
####################### 集群配置 ##########################
# 配置参数解读
# server.A=B:C:D
# A 是一个数字,表示这个是第几号服务器;文件 myid 里面有一个数据 就是 A 的值
# B 是这个服务器的地址;
# C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口(默认为2888);
# D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口(默认为3888)。
# 一般来说,集群中每个服务器的C端口都是一样,每个服务器的D端口也是一样。但是当所采用的为伪集群时,IP地址都一样,只能时C端口和D端口不一样
# 注意:因为是在同一台服务器上配置的zookeeper 集群,所以ip地址是一样的,但是端口号要设置不同
#server.1=centos8:2888:3888
#server.2=centos8:2889:3889
#server.3=centos8:2890:3890
2.伪集群模式
伪集群模式就是在同一主机启动多个zookeeper并组成集群
- 在同一台主机上,通过复制并修改得到三个zookeeper配置文件和数据目录
-
配置服务器编号,在/opt/module/zookeeper-3.5.7/zkData 目录下创建一个 myid 的文件
在文件中添加与 server 对应的编号(注意:上下不要有空行,左右不要有空格)
注意: 添加 myid 文件,一定要在 Linux 里面创建,在 notepad++里面很可能乱码vi myid
-
将配置文件中要修改的部分做修改
进入 zkData1 的目录,在 myid 文件中,写入 1;
同样在 zkData2 和 zkData3 进行相同的操作,
区别是 myid 不同:zkData2 的 myid 文件写 2,zkData3 的 myid 文件写 3。在配置文件中要注意修改 dataDir、clientPort 的值,以及集群配置部分对应的 server 的编号
因为是在同一台服务器上配置的zookeeper 集群,所以ip地址是一样的,但是端口号要设置不同
此处以 zoo2.cfg 为例,zoo1.cfg 和 zoo3.cfg 内容都是一样的,注意要修改的地方即可。
-
分别启动三个zookeeper节点
./zkServer.sh start ../conf/zoo1.cfg
-
查看节点状态
./zkServer.sh status ../conf/zoo2.cfg
3.集群模式
集群模式就是在不同主机上安装 zookeeper 然后组成集群的模式,可以参考伪集群模式安装
-
在三台服务器上分别部署1个 ZooKeeper
-
zookeeper 配置文件 conf/zoo.cfg 中集群配置部分,如下:
IP地址不同server.1=127.0.0.1:2888:3888 server.2=127.0.0.2:2888:3888 server.3=127.0.0.3:2888:3888
-
分别启动三个 zookeeper 节点,即完成对 ZooKeeper 集群的安装配置
更多推荐
所有评论(0)