概述
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等,是很多分布式的基础设置,比如dubbo,kafka,hbase等。zookeeper 可以单机部署,单独使用,一般需要做集群部署。你运行一个zookeeper也是可以的,但是在生产环境中,你最好部署3,5,7个节点。部署的越多,可靠性就越高,当然只能部署奇数个,偶数个是不可以的。
部署
由于是实验性质,我们部署的时候在一台机器上部署多个实例。
1.首先需要下载zookeeper.
2.解压
tar -zxvf zookeeper-3.4.13.tar.gz
3.进入到 conf目录
创建3份配置文件
zk1.cfg zk2.cfg zk3.cfg
3.在根目录下创建 data 目录
mkdir data
cd data
mkdir zk1
mkdir zk2
mkdir zk3
在data 创建3个目录
4.在根目录下创建log目录
创建3个目录
mkdir log
cd log
mkdir zk1
mkdir zk2
mkdir zk3
5.分别编辑 zk1.cfg zk2.cfg zk3.cfg
zk1.cfg
dataDir=/home/zookpeer/zookeeper-3.4.13/data/zk1
clientPort=2181
dataLogDir=/home/zookpeer/zookeeper-3.4.13/log/zk1
server.1=localhost:2890:3890
server.2=localhost:2891:3891
server.3=localhost:2892:3892
zk2.cfg
dataDir=/home/zookpeer/zookeeper-3.4.13/data/zk2
clientPort=2182
dataLogDir=/home/zookpeer/zookeeper-3.4.13/log/zk2
server.1=localhost:2890:3890
server.2=localhost:2891:3891
server.3=localhost:2892:3892
zk3.cfg
dataDir=/home/zookpeer/zookeeper-3.4.13/data/zk3
clientPort=2183
dataLogDir=/home/zookpeer/zookeeper-3.4.13/log/zk3
server.1=localhost:2890:3890
server.2=localhost:2891:3891
server.3=localhost:2892:3892
6.在data目录创建myid文件
区分到底是第几个实例,就要有个id文件,且名字必须是myid
执行命令
echo "1" > /home/zookpeer/zookeeper-3.4.13/data/zk1/myid
echo "2" > /home/zookpeer/zookeeper-3.4.13/data/zk2/myid
echo "3" > /home/zookpeer/zookeeper-3.4.13/data/zk3/myid
7.分别启动zookeeper
./bin/zkServer.sh start conf/zk1.cfg
./bin/zkServer.sh start conf/zk2.cfg
./bin/zkServer.sh start conf/zk3.cfg
8.查看zookpeer 状态
可以看到zk2 是实例,zk1,zk3 是从实例
这样就安装好了zookeeper 的集群,如果是多机器部署
可以改成:
dataDir=/home/zookpeer/zookeeper-3.4.13/data/
clientPort=2181
dataLogDir=/home/zookpeer/zookeeper-3.4.13/log/
server.1=localhost:2890:3890
server.2=localhost:2890:3890
server.3=localhost:2890:3890
部署更简单。