注意事项:单台机器及上运⾏多个Zookeeper实例。这种情况下,必须保证每个配置⽂件的各个端⼝号不能冲突,除clientPort不同之外,dataDir也不同。另外,还要在dataDir所对应的⽬录中创建myid⽂件来指定对应的Zookeeper服务器实例
- clientPort端⼝:如果在1台机器上部署多个server,那么每台机器都要不同的 clientPort,⽐如 server1是2181,server2是2182,server3是2183
- dataDir和dataLogDir:dataDir和dataLogDir也需要区分下,将数据⽂件和⽇志⽂件分开存放,同时每个server的这两变量所对应的路径都是不同的
- server.X和myid:server.X 这个数字就是对应,data/myid中的数字。在3个server的myid⽂件中分别写⼊了1,2,3,那么每个server中的zoo.cfg都配 server.1 server.2,server.3就⾏了。因为在同⼀台机器上,后⾯连着的2个端⼝,3个server都不要⼀样,否则端⼝冲突
下载Zookeeper并上传至Linux服务器
下载最新稳定版本的zookeeper http://zookeeper.apache.org/releases.html
解压安装
#创建⽬录zkcluster
mkdir zkcluster
#解压至zkcluster目录下
tar -zxvf zookeeper-3.4.14.tar.gz -C /zkcluster
#重命名
mv zookeeper-3.4.14 zookeeper01
#复制两份出来
cp -r zookeeper01/ zookeeper02
cp -r zookeeper01/ zookeeper03
#分别在zookeeper01、zookeeper02、zookeeper03⽬录下创建data及logs⽬录
mkdir data
cd data
mkdir logs
#修改配置⽂件名称
cd conf
mv zoo_sample.cfg zoo.cfg
#配置每⼀个Zookeeper 的dataDir(zoo.cfg) clientPort 分别为2181 2182 2183
clientPort=2181
dataDir=/zkcluster/zookeeper01/data
dataLogDir=/zkcluster/zookeeper01/data/logs
clientPort=2182
dataDir=/zkcluster/zookeeper02/data
dataLogDir=/zkcluster/zookeeper02/data/logs
clientPort=2183
dataDir=/zkcluster/zookeeper03/data
dataLogDir=/zkcluster/zookeeper03/data/logs
配置集群
-
在每个zookeeper的 data ⽬录下创建⼀个 myid ⽂件,内容分别是1、2、3 。这个⽂件就是记录每个服务器的ID
#其他的类似 echo 2 > myid echo 3 > myid echo 1 > myid
-
在每⼀个zookeeper 的 zoo.cfg配置客户端访问端⼝(clientPort)和集群服务器IP列表。
server.1=10.211.55.4:2881:3881 server.2=10.211.55.4:2882:3882 server.3=10.211.55.4:2883:3883 #server.服务器ID=服务器IP地址:服务器之间通信端⼝:服务器之间投票选举端⼝
-
依次启动集群
#进入bin目录,依次启动三个zk实例 ./zkServer.sh start