zookeeper安装部署手册
一、下载
从官网下载最新稳定版本,目前最新稳定版本为:3.6.0。下载地址为:http://zookeeper.apache.org/releases.html。
二、单节点安装
2.1、将下载下的安装文件解压
tar -xvf apache-zookeeper-3.6.0-bin.tar.gz
2.2、配置文件
2.2.1、复制配置文件并重命名
将解压目录下的conf/zoo_sample.cfg复制,重命名为zoo.cfg,此处在conf文件下进行
cp zoo_sample.cfg zoo.cfg
2.2.2、修改部分参数
编辑zoo.cfg,
vim zoo.cfg
最简参数配置如下所示:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/sct/tool/zookeeper/data
clientPort=2181
2.3、启动
进入bin目录,执行如下命令:
./zkServer.sh start
2.4、验证
进入bin目录,执行如下命令:
./zkServer.sh status
若出现如下结果,则证明启动成功
ZooKeeper JMX enabled by default
Using config: /home/sct/tool/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: standalone
2.5、问题记录
2.5.1、端口占用
端口占用有两种情况:
1)本身的clientPort端口占用,修改配置文件中的clentPort值为没有占用的端口即可。
2)zookeeper启动的时候,默认会启动adminserver控制台,默认端口为8080。如果被占用,可以更改端口号或禁用控制台功能。分别如下操作:
-
更改端口号:
在zoo.cfg配置文件中添加:
admin.serverPort=2182
-
禁用adminserver控制台
编辑zkServer.sh文件,修改内容如下(两个地方):
蓝色框中的内容为:
-Dzookeeper.admin.enableServer=false
重新启动即可。
三、集群安装
此处假设在同一台服务器上安装,一般在生产环境,为了高可用,都建议各节点安装在不同服务器。
环境说明:
在192.168.10.2服务器安装zookeeper集群,节点数为3个,客户端端口分别为:3181,3182,3183
具体步骤如下:
3.1、配置文件
此处修改的配置文件有两个地方
3.1.1、zoo.cfg配置文件
修改如下
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/sct/tool/zookeeper-cluster/zookeeper-1/data
clientPort=3181
server.0=192.168.10.2:2888:3888
server.1=192.168.10.2:2889:3889
server.2=192.168.10.2:2890:3890
备注:
各个节点的配置文件基本一致,此处只要修改clientPort的端口值及dataDir的目录路径即可。
server.0=192.168.10.2:2888:3888
server.1=192.168.10.2:2889:3889
server.2=192.168.10.2:2890:3890
以上三个配置,是专为集群设置的。格式要求如下:
server.A=B:C:D
其中:
A:任意字符,一般设置为数字。如果设置三个节点,则A的值不可相同,可依次为0,1,2。
B:代表节点所在的IP地址,依据实际情况填写。
C:代表Leader选举的端口,此处可按需修改,不冲突即可。
D:代表Zookeeper服务器之间的通信端口,此处可按需修改,不冲突即可。
3.1.2、myid配置文件
myid文件需要新建,存放的位置是有要求的,要求放在于数据文件同级目录下(可参考zoo.cfg中的dataDir值),如针对节点1,则存放在:
/home/sct/tool/zookeeper-cluster/zookeeper-1/data 下。
3.2、启动
分别在各节点下启动zookeeper即可。启动命令如下:
进入bin目录,执行如下命令:
./zkServer.sh start
刚开始启动第一个节点,日志报错,先不需要关注,因为这是集群模式,会监听其他节点,但是其他节点还没有启动,所以报错。我们把所有节点启动后,报错会消失。
3.3、验证
进入bin目录,执行如下命令:
./zkServer.sh status
如看到如下结果,则证明集群启动成功:
Using config: /home/sct/tool/zookeeper-cluster/zookeeper-1/bin/../conf/zoo.cfg
Client port found: 3181. Client address: localhost.
Mode: leader
此处我们可以看到,此节点是leader节点。如果是follower节点,则显示如下:
Using config: /home/sct/tool/zookeeper-cluster/zookeeper-2/bin/../conf/zoo.cfg
Client port found: 3182. Client address: localhost.
Mode: follower
3.4、说明
如果对集群进行授权,只要在同一节点下进行授权即可,其他节点自动同步。