Zookeeper环境搭建
# Zookeeper的搭建⽅式
Zookeeper安装⽅式有三种,单机模式和集群模式以及伪集群模式。
■ 单机模式:Zookeeper只运⾏在⼀台服务器上,适合测试环境;
■ 集群模式:Zookeeper运⾏于⼀个集群上,适合⽣产环境,这个计算机集群被称为⼀个“集合体”
■ 伪集群模式:就是在⼀台服务器上运⾏多个Zookeeper 实例;
# 单机模式搭建:
zookeeper安装以linux环境为例:
1、下载
⾸先我们下载稳定版本的zookeeper http://zookeeper.apache.org/releases.html
2、上传
下载完成后,将zookeeper压缩包zookeeper-3.4.14.tar.gz上传到linux系统
3、解压缩压缩包
tar -zxvf zookeeper-3.4.14.tar.gz
4、进⼊ zookeeper-3.4.14⽬录,创建data⽂件夹
cd zookeeper-3.4.14
mkdir data
5、修改配置⽂件名称
cd conf
mv zoo_sample.cfg zoo.cfg
5、修改zoo.cfg中的data属性
dataDir=/root/zookeeper-3.4.14/data
6、zookeeper服务启动
进⼊bin⽬录,启动服务输⼊命令
./zkServer.sh start
输出以下内容表示启动成功
关闭服务输⼊命令
./zkServer.sh stop
输出以下提示信息
查看状态
./zkServer.sh status
如果启动状态,提示:
如果未启动状态,提示:
# 伪集群模式:
Zookeeper不但可以在单机上运⾏单机模式Zookeeper,⽽且可以在单机模拟集群模式 Zookeeper的运⾏,也就是将不同实例运⾏在同⼀台机器,⽤端⼝进⾏区分,伪集群模式为我们体验Zookeeper和做⼀些尝试性的实验提供了很⼤的便利。⽐如,我们在测试的时候,可以先使⽤少量数据在伪集群模式下进⾏测试。当测试可⾏的时候,再将数据移植到集群模式进⾏真实的数据实验。这样不但保证了它的可⾏性,同时⼤⼤提⾼了实验的效率。这种搭建⽅式,⽐较简便,成本⽐较低,适合测试和学习
注意事项:
⼀台机器上部署了3个server,也就是说单台机器及上运⾏多个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 http://zookeeper.apache.org/releases.html
上传
下载完成后,将zookeeper压缩包 zookeeper-3.4.14.tar.gz上传到linux系统
解压压缩包
创建⽬录zkcluster
mkdir zkcluster
解压zookeeper-3.4.14.tar.gz到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
配置集群
(1)在每个zookeeper的 data ⽬录下创建⼀个 myid ⽂件,内容分别是1、2、3 。这个⽂件就是记录每个服务器的ID
touch myid
(2)在每⼀个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地址:服务器之间通信端⼝:服务器之间投票选举端⼝
启动集群
依次启动三个zk实例