一:集群环境
模拟三台zookeeper集群环境,IP规划如下: Server1: 192.168.189.129 Server2: 192.168.189.131 Server3: 192.168.189.132
二:安装环境准备
Zookeeper需在java环境下运行,因此在部署zookeeper环境前,需先安装JDK: 1
2
3
| # tar -zvxf jdk-7u11-linux-x64.gz
# mv jdk1.7.0_11/ /usr/local/java
# cd /usr/local/java/bin
|
设置java环境变量,在/etc/profile文件中添加以下信息: 1
2
3
4
5
| # export JAVA_HOME=/usr/local/java
# export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# export PATH=$PATH:$JAVA_HOME/bin
使环境变量生效
# source /etc/profile
|
三:部署安装zookeeper(以zookeeper-3.4.5版本为例)
Server1上部署(部署完成后可将zookeeper目录直接拷贝到Server2,Server3)
下载zookeeper安装包,解压,配置: 1
2
3
4
| # tar -zxvf zookeeper-3.4.5.tar.gz
# mv zookeeper-3.4.5.tar.gz /usr/local/zookeeper
# cd /usr/local/zookeeper/conf
# cp zoo_sample.cfg zoo.cfg
|
配置zoo.cfg,配置集群选项: 1
2
3
4
5
6
7
8
9
| # cat zoo.cfg
tickTime=2000 (服务器与客户端的心跳时间)
initLimit=10
syncLimit=5
dataDir=/zkdata/zookeeper (保存数据目录,自定义)
clientPort=2181 (客户端连接端口,可更改)
server.1=192.168.189.129:2888:3888 (集群配置)
server.2=192.168.189.131:2888:3888
server.3=192.168.189.132:2888:3888
|
配置完Server1,把zookeeper目录拷贝到Server2,Server3:
1
2
| # scp -rp /usr/local/zookeeper 192.168.189.131:/usr/local/
# scp -rp /usr/local/zookeeper 192.168.189.132:/usr/local/
|
在各Server的dataDir目录下创建myid文件: 1
2
3
4
5
6
| Server1:
#echo “1” >/zkdata/zookeeper/myid
Server2:
#echo “2” >/zkdata/zookeeper/myid
Server3:
#echo “3” >/zkdata/zookeeper/myid
|
四:启用zookeeper
在各Server上依次开启zookeeper服务: 1
| # /usr/local/zookeeper/bin/zkServer.sh start
|
查看zookeeper状态: 1
2
3
4
| # /usr/local/zookeeper/bin/zkServer.sh status
JMX enabled by default
Using config:/home/usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower(或是leader)
|
出现以上信息,说明zookeeper服务启用成功,并且选举出了leader与follower的集群关系。
五:测试zookeeper集群
使用客户端软件连接leader服务器(假设选举出的leader为Server1) 1
| #/usr/local/zookeeper/bin/zkCli.sh -server 192.168.189.129
|
在leader上创建一个znode,并退出 连接follower服务器,查看是否存在之前创建的znode 1
| #/usr/local/zookeeper/bin/zkCli.sh -server 192.168.189.131
|
发现follower服务器上已经有了leader服务器上创建的znode,说明集群生效
|