Zookeeper集群搭建

549 阅读2分钟

Zookeeper简单介绍

Zookeeper官方:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

Zookeeper单机模式搭建

  环境:Centos 7、jdk1.8、zookeeper-3.4.10

  • 下载 Zookeeper【Zookeeper官网
  • 解压:tar -zxvf zookeeper-3.4.10.tar.gz
  • 进入 zookeeper-3.4.10/conf 目录将 zoo_sample.cfg 文件名修改为 zoo.cfg:mv zoo_sample.cfg zoo.cfg
  • 进入 zookeeper-3.4.10/conf 目录启动 Zookeeper :sh zkServer.sh start
  • 验证是否启动成功:sh zkServer.sh status(最后一行出现 standalone 则成功)
    在这里插入图片描述
  • 连接 Zookeeper
 sh zkCli.sh

在这里插入图片描述

Zookeeper集群模式搭建

  • 修改 zoo.cfg 文件,在 zoo.cfg 文件中添加如下配置:
### server.A=B:C:D
### A:第几号服务器,B:服务IP,C:leader 和 follower 通讯端口,D:备用 leader 端口
server.1=192.168.43.200:2188:2888
server.2=192.168.43.201:2188:2888
server.3=192.168.43.202:2188:2888
  • 将 zookeeper 拷贝到另外两台机器
scp -r zookeeper-3.4.10/ root@192.168.43.201:/tools
scp -r zookeeper-3.4.10/ root@192.168.43.202:/tools
  • 设置 myid 文件,告诉 Zookeeper 当前是哪一台服务器
### 设置 1 号服务器
echo "1" >/tmp/zookeeper/myid
### 设置 2 号服务器
echo "2" >/tmp/zookeeper/myid
### 设置 3 号服务器
echo "3" >/tmp/zookeeper/myid
  • 顺序启动这三个 Zookeeper 服务器
  • 验证启动是否成功,打印日志最后一行出现 leader 或 follower 则启动成功
  • 连接 Zookeeper 服务
sh zkCli.sh -server 192.168.43.201:2181,192.168.43.200:2181,192.168.43.202:2181

在这里插入图片描述

Zookeeper集群角色介绍

  • Leader:   ZooKeeper集群的主节点,负责响应所有对ZooKeeper状态变更的请求。会将每个状态更新请求进行排序和编号,以便保证整个集群内部消息处理的FIFO,写操作都走 leader,ZK中只有一个 leader
  • Follower :   Followe响应本服务器上的读请求外,处理leader的提议,leader提交该提议时在本地也进行提交。   注意:     leader 和follower 构成ZooKeeper集群的法定人数,也就是说,只有他们才参与新leader的选举、响应leader的提议。 帮助leader处理读请求,有投票权选举 leader。
  • Observer :   提高读取吞吐量。observer 不需要将事务持久化到磁盘,若 observer 被重启,需要 leader 重新同步整个名字空间。 没有投票权利(因为 observer 不属于法定人数),只可以处理读请求