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(主)

 

posted @ 2019-10-19 00:18  大数据老司机  阅读(267)  评论(0编辑  收藏  举报