zookeeper3.6.2版本集群安装
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的分布式锁使用以及其他框架依赖等待后续更新。