赞
踩
选择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
修改配置文件:
# 进入配置文件
[root@hecs-403280 conf]# vim zoo.cfg
修改数据目录如下:
dataDir=/usr/local/apache-zookeeper-3.8.2-bin/data/zookeepr
启动服务:
# 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
打开客户端:
# 本地连接
[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
# 时间配置的基本单位,单位毫秒 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
# 启动zk,默认配置文件为conf/zoo.cfg
./zkServer.sh [zoo.cfg]
# 关闭zk,如果关闭不掉通过ps查找出pid,然后kill掉
./zkServer.sh stop
# 重启zk
./zkServer.sh restart
# 查看zk状态
./zkServer.sh status
# 进入客户端
./zkCli
三台虚拟机,如下:
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:~
在每一台机器上安装zk,参考上面的安装单机教程。
修改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
说明:
server.A=B:C:D
A 是一个数字,表示这个是第几号服务器。集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,ZooKeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
B 是这个服务器的地址。
C 是这个服务器Follower与集群中的Leader服务器交换信息的端口。
D 是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
创建myid文件,配置服务器编号。
在dataDir对应目录下创建myid文件,内容为对应ip的zooKeeper服务器编号。
cd /usr/local/apache-zookeeper-3.8.2-bin/data/zookeeper
# 在文件中添加与server对应的编号(注意:上下不要有空行,左右不要有空格)
vim myid
# 键入数字并保存退出
注意:添加myid文件,一定要在Linux里面创建,在notepad++里面很可能乱码。
启动前需要关闭防火墙(生产环境需要打开对应端口)。
# 分别启动三个节点的zookeeper server
bin/zkServer.sh start
# 查看集群状态
bin/zkServer.sh status
# 可以发现,两台mode是follower,一台式mode是leader
自动选举演示:
将原先是leader的节点重启,重启后变成了follower,另两个其中有一个变成了leader了,这里就不截图了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。