Zookeeper下载
zookeeper 官网:https://zookeeper.apache.org
下载地址: https://zookeeper.apache.org/releases.html
选择上面标红的稳定版本,这里我选择的是最新ZooKeeper稳定版3.7.1。
Zookeeper集群安装
1.上传解压Zookeeper
将下载的ZooKeeper放到/usr/local/目录下,解压ZooKeeper安装文件。
命令:
tar -zxvf zookeeper-3.7.1.tar.gz
2.修改配置文件zoo.cfg
进入ZooKeeper配置文件目录,将zoo_sample.cfg这个文件复制为zoo.cfg 。
命令:
cd zookeeper-3.7.1/conf
将zookeeper压缩文件解压后,我们进入到 conf 目录:
cp zoo_sample.cfg zoo.cfg
3.编辑zoo.cfg文件
命令:
vim zoo.cfg
修改配置文件,主要就是把dataDir=/tmp/zookeeper注释掉,然后添加以下核心配置:
# zookeeper时间配置的基本单位 tickTime=2000 # 允许follower初始化连接到leader最大时长,它表示tickTime时间倍数 即:initLimit*tickTime initLimit=10 # 允许follower与leader数据同步最大时长,它表示tickTime时间倍数 syncLimit=5 # zookeeper数据存储目录及日志保存 dataDir=/usr/local/zookeeper/data dataLogDir=/usr/local/zookeeper/log #zookeeper集群 server.1=192.168.146.200:2888:3888 server.2=192.168.146.201:2888:3888 server.3=192.168.146.202:2888:3888 # 对客户端提供的端口号 clientPort=2181 # 单位客户端与zookeeper最大并发连接数 maxClientCnxns=60 # 保存的数据快照数量,之外的将会被清除 autopurge.snapRetainCount=3 # 自动触发清除任务时间间隔,小时为单位。默认为0,表示不自动清除 autopurge.purgeInterval=1
核心参数说明:
dataDir:存储内存中数据库快照的位置;
dataLogDir:存储日志文件;
clientPort:监听客户端连接的端口;
initLimit:许follower连接并同步到Leader的初始化连接时间;
syncLimit:此配置表示,leader 与 follower 之间发送消息,请求 和应答 时间长度;
server.A=B:C:D ,A为服务器编号,B为IP地址,C为端口,D为Leader选举的端口;
示例:比如上面,我配置3台zookeeper集群:
server.1=192.168.146.200:2888:3888 server.2=192.168.146.201:2888:3888 server.3=192.168.146.202:2888:3888
Zookeeper集群原则上需要2n+1个实例才能保证集群有效性,所以集群规模至少是3台。
4.创建myid文件
在 上一步 dataDir 指定的目录下,创建 myid 文件。
比如:dataDir =/usr/local/zookeeper/data,那就在该目录下创建 myid 文件,然后在文件上写1即可。
$ cd ../data $ touch myid $ echo "1">>myid
备注:里面的配置和 zoo.cfg 的server.x 配置需要保持一致。
5.配置集群其它机器
把配置好的Zookeeper目录复制到其他两台机器上,重复上面的步骤。
6.配置环境变量
为了能够在任意目录启动zookeeper集群,我们需要配置环境变量。
进入到 /etc/profile 目录,添加相应的配置信息:
export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.7.1/ export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
然后通过如下命令使得环境变量生效:
source /etc/profle
Zookeeper集群启动
1.启动3台zookeeper集群
我们分别对集群三台机器执行启动命令:
zkServer.sh start
3.查看ZooKeeper集群状态
命令:
zkServer.sh status
出现如下:
说明ZooKeeper集群搭建成功了。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》