目录
目标
- 了解ZooKeeper基本信息;
- 熟悉配置ZooKeeper集群。
简介
ZooKeeper是用于维护配置信息,命名,提供分布式同步以及提供组服务的集中式服务。ZooKeeper旨在将这些不同服务的本质提炼成一个非常简单的界面,以实现集中式协调服务。
配置ZooKeeper集群
环境准备
三台Linux虚拟机,且都具备JDK环境。
配置步骤
第一步:到ZooKeeper官网下载Linux版本的ZooKeeper安装包(本文以apache-zookeeper-3.6.2-bin.tar.gz版本为例。);
第二步:上传apache-zookeeper-3.6.2-bin.tar.gz到/opt目录(略);
第三步:解压该文件:
tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
第四步:在/opt/apache-zookeeper-3.6.2-bin/conf目录下创建zoo.cfg文件,配置相关参数:
#以zoo_sample.cfg为模板,创建zoo.cfg文件。
cp /opt/apache-zookeeper-3.6.2-bin/conf/zoo_sample.cfg /opt/apache-zookeeper-3.6.2-bin/conf/zoo.cfg
#################zoo.cfg配置文件的内容如下:#################
#ZooKeeper使用的基本时间单位(毫秒)。它用于做心跳,并且最小会话超时将是tickTime的两倍。
tickTime=2000
#存储内存数据库快照的位置,除非另有说明,否则存储数据库更新的事务日志。
dataDir=/opt/apache-zookeeper-3.6.2-bin/data
#用于侦听客户端连接的端口。
clientPort=2181
#ZooKeeper服务器必须连接到leader的时间长度。这里设定的时间长度是10秒(initLimit*tickTime)。
initLimit=5
#限制服务器与主机之间的超时范围。这里设定的时间范围是4秒(syncLimit*tickTime)。
syncLimit=2
#server.1中的1表示自定义ZooKeeper的服务ID是1。
#192.168.120.xxx表示ZooKeeper所在服务器的IP。
#2888表示集群内机器通信使用2888端口。
#3888表示选举leader使用3888端口。
server.1=192.168.120.100:2888:3888
server.2=192.168.120.101:2888:3888
server.3=192.168.120.102:2888:3888
第五步:根据刚才配置的dataDir、server.ID、IP新建目录并定义服务编号;
#新建目录
mkdir /opt/apache-zookeeper-3.6.2-bin/data
#创建myid文件并写入内容为1,实际上就是配置server.ID为1。
echo 1 > /opt/apache-zookeeper-3.6.2-bin/data/myid
#查看myid文件的内容是不是刚才写入的数字。
cat /opt/apache-zookeeper-3.6.2-bin/data/myid
第六步:另外两台虚拟机重复上述步骤,注意:第五步要以zoo.cfg内容为操作标准(略)。
启动&关闭ZooKeeper集群
#############在每个服务器上的/opt/apache-zookeeper-3.6.2-bin/bin目录下执行:#############
#启动
./zkServer.sh start
#查看状态
./zkServer.sh status
#重启
./zkServer.sh restart
#停止
./zkServer.sh stop
#查看日志
./zkServer.sh start-foreground
#进入客户端
./zkCli.sh