Zookeeper集群搭建 一、前言 二、准备 三、搭建 四、启动Zookeeper服务并简单测试
在大型分布式集群系统中,Zookeeper是一个非常重要的分布式协调服务组件;其应用场景非常广泛,如做服务的注册中心、实现分布式锁以及集群Master选举等等。本文讲述的,就是Zookeeper集群的搭建。
二、准备
Zookeeper本身是由Java语言开发的一个相对独立的基础分布式组件,因此,Zookeeper的安装除了需要安装JVM外,不再需要依赖其它环境。
2.1、机器环境准备
我们准备3台机器,并都装好JDK且设置好hostname。
机器IP | hostname |
192.168.182.128 | node-1 |
192.168.182.129 | node-2 |
192.168.182.130 | node-3 |
三、搭建
3.1、作域名映射
vi /etc/hosts
192.168.182.128 node-1 192.168.182.129 node-2 192.168.182.130 node-3
注意:也可以使用ip,不是硬性要求
3.2、下载,配置zookeeper
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
tar -zxvf apache-zookeeper-3.4.12.tar.gz && cd apache-zookeeper-3.4.12
cd conf/ && cp zoo_sample.cfg zoo.cfg
# 创建数据存储目录,和日志目录
mkdir /home/liuguoping/software/zookeeper-3.4.12/zkdata /home/liuguoping/software/zookeeper-3.4.12/logs -p
vi zoo.cfg
# 添加内容
dataDir=/home/liuguoping/software/zookeeper-3.4.12/zkdata
dataLogDir=/home/liuguoping/software/zookeeper-3.4.12/logs
server.1=node-1:2888:3888 # 心跳端口,选举端口
server.2=node-2:2888:3888
server.3=node-3:2888:3888
3.3、设置myid,三台分别设置1,2,3
# node-1 /home/liuguoping/software/zookeeper-3.4.12/zkdata echo 1 > myid
3.4、分发安装包到其它机子上,并设置myid
# node-2
scp -r /home/liuguoping/software/apache-zookeeper-3.4.12/ root@192.168.182.129:/home/liuguoping/software/apache-zookeeper-3.4.12/ cd /home/liuguoping/software/zookeeper-3.4.12/zkdata echo 2 > myid
# node-3 scp -r /home/liuguoping/software/apache-zookeeper-3.4.12/ root@192.168.182.130:/home/liuguoping/software/apache-zookeeper-3.4.12/ cd /home/liuguoping/software/zookeeper-3.4.12/zkdata echo 3 > myid
3.5、即修改后的配置文件zoo.cfg
中的有效配置内容如下:
tickTime=2000 initLimit=10 syncLimit=5 clientPort=2181 dataDir=/home/liuguoping/software/zookeeper-3.4.12/zkdata dataLogDir=/home/liuguoping/software/zookeeper-3.4.12/logs server.1=node-1:2888:3888 server.2=node-2:2888:3888 server.3=node-3:2888:3888
四、启动Zookeeper服务并简单测试
4.1、启动服务
Zookeeper集群的启动,需要进入各个节点单独启动。进入Zookeeper的/bin目录下执行命令 ./zkServer.sh start即可启动服务。然后执行命令./zkServer.sh status查看服务状态并可以看到当前节点是leader(主)节点还是follower(从)节点。
启动失败原因:可以查看/bin目录下启动生成的日志文件zookeeper.out,看失败的原因是什么,然后对症下药调整。(常见的失败原因有:防火墙未关闭、配置文件未创建、数据目录未创建、myid文件未创建或创建有误等)
解决:关闭防火墙systemctl status firewalld.service,启动三台zookeeper服务./zkServer.sh start,因为启动服务会有选主的过程,会有点延时,可以稍等一会,用./zkServer.sh status查看服务状态,如果按照上面的一步步来,应该没有啥问题,正常情况下三台机子zookeeper状态如下:
node-1(192.168.182.128):follower(从)
node-2(192.168.182.129):follower(从)
node-3(192.168.182.130):leader(主)