zookeeper安装
1、准备jdk环境,这里用的dk1.8.0_191版本
[root@node130 usr]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
2、下载zookeeper安装包并解压
直接去zookeeper官网上copy下载路径,wget下载,也可以下载之后上传到指定目录。
3、配置zookeeper环境变量(/etc/profile)
export ZK_HOME=/usr/zookeeper-3.6.2/
export PATH=$PATH:$ZK_HOME/bin
4、准备配置文件
cd /usr/zookeeper-3.6.2/conf/
cp zoo_sample.cfg zoo.cfg
进入/usr/zookeeper-3.4.13/conf/目录下,修改zoo.cfg
# The number of milliseconds of each tick
tickTime=2000 --基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小的session过期时间为2倍tickTime
# The number of ticks that the initial
# synchronization phase can take
initLimit=10 --Leader服务器等待Follower启动并完成数据同步的时间,默认值10,表示tickTime的10倍,当初始化连接时间超过该值,则表示连接失败。
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5 --Leader服务器和Follower之间进行心跳检测的最大延时时间,默认值5,表示tickTime的5倍,如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper --修改为自己想要保存的路径,Zookeeper服务器存储快照文件的目录
# the port at which the clients will connect
clientPort=2181 --服务器对外服务端口,一般设置为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
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
5、配置集群
创建data文件夹,创建myid文件
myid写入zookeeper(当前zookeeper节点的标识,与集群配置中的server.A相对应)
[root@node130 data]# echo 131> myid
注意要用echo 命令写入,不能使用编辑器打开,会有编码问题,造成后续启动失败。
集群配置(/zookeeper-3.4.13/conf/zoo.cfg文件)
server.131=192.168.175.131:2888:3888
server.133=192.168.175.133:2888:3888
server.134=192.168.175.134:2888:3888
配置格式为server.A=B:C:D
A:其中 A 是一个数字,表示这个是服务器的编号;
B:是这个服务器的 ip 地址;
C:Zookeeper服务器之间的通信端口;
D:Leader选举的端口。
6、验证
启动zookeeper集群(每个节点上都启动),可以看到一个leader,两个follower
#启动命令:
[root@node131 ~]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper-3.4.13/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
#查看zookeeper集群状态
[root@node131 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower
===========================================================
[root@node133 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: follower
============================================================
[root@node132 ~]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: leader
#停止命令
[root@node132 ~]# zkServer.sh stop
PS:这里只做一个zookeeper集群的简单搭建,关于zookeeper的分布式锁使用以及其他框架依赖等待后续更新。