当前位置:   article > 正文

Linux安装ZooKeeper及搭建集群_myid linux

myid linux

下载

下载地址:https://zookeeper.apache.org/releases.html

选择3.8.2版本。
须java环境,预先安装jdk8,因为zk是用java写的。

参考安装jdk8教程。
传送门:https://blog.csdn.net/u010355502/article/details/132210801

安装单机

修改配置文件

复制配置文件:

# 解压到/usr/local文件夹下
[root@hecs-403280 local]# tar -xzvf apache-zookeeper-3.8.2-bin.tar.gz
# 复制配置文件
[root@hecs-403280 local]# cd /apache-zookeeper-3.8.2-bin/conf
[root@hecs-403280 conf]# cp zoo_sample.cfg zoo.cfg
  • 1
  • 2
  • 3
  • 4
  • 5

修改配置文件:

# 进入配置文件
[root@hecs-403280 conf]# vim zoo.cfg
  • 1
  • 2

修改数据目录如下:

dataDir=/usr/local/apache-zookeeper-3.8.2-bin/data/zookeepr
  • 1

启动

启动服务:

# zkServer.sh为启动命令,默认配置文件为zoo.cnf,可省略
[root@hecs-403280 apache-zookeeper-3.8.2-bin]# ./bin/zkServer.sh start conf/zoo.cnf

# 查看zk状态
[root@hecs-403280 apache-zookeeper-3.8.2-bin]# ./bin/zkServer.sh status
  • 1
  • 2
  • 3
  • 4
  • 5

打开客户端:

# 本地连接
[root@hecs-403280 apache-zookeeper-3.8.2-bin]# ./bin/zkCli.sh

# 连接远程zk
[root@hecs-403280 apache-zookeeper-3.8.2-bin]# ./bin/zkCli.sh -server ip:port
  • 1
  • 2
  • 3
  • 4
  • 5

zoo.cfg说明

# 时间配置的基本单位,单位毫秒
tickTime=2000
# 允许follower初始化时连接到leader最大时长,值为tickTime的时间倍数,即:initLimit*tickTime
initLimit=10
# 允许follower与leader数据同步最大时长,值为tickTime的时间倍数
syncLimit=5
# 数据存储目录及日志保存目录,默认文件价为temp/zookeeper,建议修改,因为tmp目录下的文件可能会被linux清除掉
dataDir=/usr/local/apache-zookeeper-3.8.2-bin/data/zookeepr
# 对客户端提供的端口号
clientPort=2181
# 单个客户端与zk最大并发连接数
# maxClientCnxns=60
# 保存的数据快照数量,之外的将会被清除
# autopurge.snapRetainCount=3
# 自动出发清除任务时间间隔,小时为单位。默认为0,表示不自动清除
# autopurge.purgeInterval=1

# 支持ttl自动过期,该配置默认没有,需要手动添加
# extendedTypesEnabled=true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

运维命令

# 启动zk,默认配置文件为conf/zoo.cfg
./zkServer.sh [zoo.cfg]

# 关闭zk,如果关闭不掉通过ps查找出pid,然后kill掉
./zkServer.sh stop

# 重启zk
./zkServer.sh restart

# 查看zk状态
./zkServer.sh status

# 进入客户端
./zkCli
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

搭建集群

环境准备

三台虚拟机,如下:

192.168.0.83
192.168.0.184
192.168.0.48

也可以在同一台机器上搭建伪集群。

将安装包复制到对应的机器上:

scp apache-zookeeper-3.8.2-bin.tar.gz root@192.168.0.184:~
scp apache-zookeeper-3.8.2-bin.tar.gz root@192.168.0.48:~
  • 1
  • 2

在每一台机器上安装zk,参考上面的安装单机教程。

修改zoo.cfg配置

修改server节点配置:

# 修改数据存储目录
dataDir=/usr/local/apache-zookeeper-3.8.2-bin/data/zookeepr

# 三台虚拟机zoo.cfg文件末尾添加配置
server.1=192.168.0.83:2888:3888
server.2=192.168.0.184:2888:3888
server.3=192.168.0.48:2888:3888
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

说明:

server.A=B:C:D
A 是一个数字,表示这个是第几号服务器。集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,ZooKeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
B 是这个服务器的地址。
C 是这个服务器Follower与集群中的Leader服务器交换信息的端口。
D 是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

配置myid文件

创建myid文件,配置服务器编号。
在dataDir对应目录下创建myid文件,内容为对应ip的zooKeeper服务器编号。

cd /usr/local/apache-zookeeper-3.8.2-bin/data/zookeeper
# 在文件中添加与server对应的编号(注意:上下不要有空行,左右不要有空格)
vim myid
# 键入数字并保存退出
  • 1
  • 2
  • 3
  • 4

注意:添加myid文件,一定要在Linux里面创建,在notepad++里面很可能乱码。

启动集群

启动前需要关闭防火墙(生产环境需要打开对应端口)。

# 分别启动三个节点的zookeeper server
bin/zkServer.sh start
# 查看集群状态
bin/zkServer.sh status
# 可以发现,两台mode是follower,一台式mode是leader
  • 1
  • 2
  • 3
  • 4
  • 5

自动选举演示:
将原先是leader的节点重启,重启后变成了follower,另两个其中有一个变成了leader了,这里就不截图了。
截屏2023-08-16 20.19.40.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/968285
推荐阅读
相关标签
  

闽ICP备14008679号