Zookeeper 简介及安装
2019-05-09 本文已影响0人
Alexander_Zz
简介
- ZooKeeper是一个分布式且开源的分布式应用程序协调服务
- 下载地址
http://zookeeper.apache.org/releases.html - Zookeeper 集群特性
整个集群种只要有超过集群数量一半的 zookeeper 工作只正常的,那么整个集群对外就是可用的,假如有 2 台服务器做了一个 zookeeper 集群,只要有任何一台故障或宕机,那么这个 zookeeper 集群就不可用了,因为剩下的一台没有超过集群一半的数量,但是假如有三台 zookeeper 组成一个集群,那么损坏一台就还剩两台,大于 3 台的一半,所以损坏一台还是可以正常运行的,但是再损坏一台就只剩一台集群就不可用了。那么要是 4 台组成一个 zookeeper 集群,损坏一台集群肯定是正常的,那么损坏两台就还剩两台,那么 2 台不大于集群数量的一半,所以 3 台的 zookeeper 集群和 4 台的 zookeeper 集群损坏两台的结果都是集群不可用,一次类推 5 台和 6 台以及 7 台和 8 台都是同理,所以这也就是为什么集群一般都是奇数的原因
安装步骤
- 二进制安装
Server 1,Server,2 Server 3 均执行以下操作
~]# cd /usr/local/src
src]#yum install jdk-8u192-linux-x64.rpm -y
src]#java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
src]#tar xvf zookeeper-3.4.14.tar.gz
src]#cd zookeeper-3.4.14/conf/
conf]#cp zoo_sample.cfg zoo.cfg
conf]#ln -sv /usr/local/src/zookeeper-3.4.14 /usr/local/zookeeper
- 配置文件
~]# egrep "^[a-Z]" /usr/local/zookeeper/conf/zoo.cfg
tickTime=2000 # 服务器与服务器之间和客户端与服务器之间的单次心跳检测时间间隔,单位为毫秒
initLimit=5 # 集群中 leader 服务器与 follower 服务器初始连接心跳次数,即多少个 2000 毫秒
syncLimit=5 # leader 与 follower 之间连接完成之后,后期检测发送和应答的心跳次数,如果该 follower 在设置的时间内(5*2000)不能与 leader 进行通信,那么此 follower 将被视为不可用
clientPort=2181 # 客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求
dataDir=/usr/local/zookeeper/data # 自定义的 zookeeper 保存数据的目录
clientPort=2181 # 应用程序连接端口
maxClientCnxns=4096 # 最大客户端连接数
autopurge.snapRetainCount=3 # 设置 zookeeper 保存保留多少次客户端连接的数据
autopurge.purgeInterval=1 # 设置 zookeeper 间隔多少小时清理一次保存的客户端数据
server.1=172.18.33.104:2888:3888 # 服务器编号 = 服务器 IP : LF 数据同步端口 : LF选举端口
server.2=172.18.33.105:2888:3888
server.3=172.18.33.106:2888:3888
conf]#mkdir /usr/local/zookeeper/data
# Server 1
~]# echo "1" > /usr/local/zookeeper/data/myid
# 需在此目录下创建 myid 文件,文件内容需与之前配置文件中 server id 相同
# Server 2
~]# echo "2" > /usr/local/zookeeper/data/myid
# Server 3
~]# echo "3" > /usr/local/zookeeper/data/myid
- 启动 zookeeper
注意各个服务启动时间应在之前配置文件定义时间间隔以内
~]# /usr/local/zookeeper/bin/zkServer.sh start
image.png
image.png
- 配置开机自启动
Server 1,Server,2 Server 3 均执行以下操作
~]# vim /etc/rc.d/rc.local
...
/usr/local/zookeeper/bin/zkServer.sh start