zookeeper 集群的搭建

原创 2018年04月16日 11:32:19

Zookeeper 集群中只要有过半的节点是正常的情况下,那么整个集群对外就是可用的。正是基于这个特性,要将ZK集群的节点数量要为奇数(2n + 1 如 3 5 7 个节点)较为合适。

1、服务器节点

服务器端口
192.168.50.1102181、2881、3881
192.168.50.1112182、2882、3882
192.168.250.1122183、2883、3883

2、下载或者上传zookeeper-3.4.6.tar.gz 到、/usr/local/zookeeper

# cd /usr/local/zookeeper

#wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

3、解压 zookeeper-3.4.10.tar.gz

# tar -zxvf zookeeper-3.4.10.tar.gz

4、在zookeeper 节点下目录下创建一下目录

# cd  /usr/local/zookeeper-3.4.10

#mkdir data

#mkdir logs

5、将zookeeper-3.4.10/conf目录下的zoo_sample.cfg 文件拷贝一份,命

# cp zoo_sample.cfg zoo.cfg

6、修改 zoo.cfg 配置文件

192.168.50.110的配置    /usr/local/zookeeper-3.4.10/conf/

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.10/data
dataLogDir=/usr/local/zookeeper-3.4.10/logs
clientPort=2181
server.1=192.168.50.110:2881:3881
server.2=192.168.50.111:2882:3882
server.3=192.168.50.112:2883:3883

192.168.50.111的配置    /usr/local/zookeeper-3.4.10/conf/

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.10/data
dataLogDir=/usr/local/zookeeper-3.4.10/logs
clientPort=2181
server.1=192.168.50.110:2881:3881
server.2=192.168.50.111:2882:3882
server.3=192.168.50.112:2883:3883

192.168.50.112的配置    /usr/local/zookeeper-3.4.10/conf/

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.10/data
dataLogDir=/usr/local/zookeeper-3.4.10/logs
clientPort=2181
server.1=192.168.50.110:2881:3881
server.2=192.168.50.111:2882:3882
server.3=192.168.50.112:2883:3883

参数说明: :
tickTime=2000
tickTime 这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每
个 tickTime 时间就会发送一个心跳。
initLimit=10
initLimit 这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper
服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长
能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服

务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。


syncLimit=5
syncLimit 这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少
个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒。
dataDir=/home/wusc/zookeeper/node-01/data
dataDir顾名思义就是Zookeeper保存数据的目录,默认情况下Zookeeper将写数据的日志文件也保存在

这个目录里。


clientPort=2181
clientPort 这个端口就是客户端(应用程序)连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端
口接受客户端的访问请求。

server.A=B:C:D

server.1=192.168.50.110:2881:3881
server.2=192.168.50.111:2882:3882
server.3=192.168.50.112:2883:3883
A 是一个数字,表示这个是第几号服务器;
B 是这个服务器的 IP 地址(或者是与 IP 地址做了映射的主机名);
C 第一个端口用来集群成员的信息交换,表示这个服务器与集群中的 Leader 服务器交换信息的端口;
D 是在 leader 挂掉时专门用来进行选举 leader 所用的端口。
注意:如果是伪集群的配置方式,不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不

同的端口号。


7、在 dataDir = /usr/local/zookeeper-3.4.10/conf/data 下创建myid 文件

编辑 myid 文件,并在对应的 IP 的机器上输入对应的编号。如在 192.168.50.110 上,myid 文件内容就是
1,192.168.50.111 上就是 2,192.168.50.113 上就是 3:

$ vi    /usr/local/zookeeper-3.4.10/data/myid   值为1

$ vi    /usr/local/zookeeper-3.4.10/data/myid   值为2

$ vi    /usr/local/zookeeper-3.4.10/data/myid   值为3


8.在防火墙中打开要用到的端口 218X、288X、388X

切换到 root 用户权限,执行以下命令:
# chkconfig iptables on
# service iptables start
编辑/etc/sysconfig/iptables
# vi /etc/sysconfig/iptables
如服务器 01 增加以下 3 行:
## zookeeper

# vi /etc/sysconfig/iptables

# chkconfig iptables on
# service iptables start

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2881 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3881 -j ACCEPT

重启防火墙:
service iptables restart

查看防火墙端口状态:
# service iptables status
# chkconfig iptables on
# service iptables start
# service iptables restart

9、 启动并测试 zookeeper(要用 wusc 用户启动,不要用 root):
(1) 使用 wusc 用户到 /usr/local/zookeeper-3.4.10/bin 目录中执行:
$ /usr/local/zookeeper-3.4.10/bin/zkServer.sh start
$ /usr/local/zookeeper-3.4.10/bin/zkServer.sh start

$ /usr/local/zookeeper-3.4.10/bin/zkServer.sh start

(2) 输入jps命令查看进程

$jps

1456 QuoruPeerMain

其中,QuorumPeerMain 是 zookeeper 进程,说明启动正常

(3)查看状态

 /usr/local/zookeeper-3.4.10/bin/zkServer.sh status

(4) 查看zookeeper服务输出信息:

服务输出信息输出在 /usr/local/zookeeper-3.4.10/bin/zookeeper.out

$ tail -f -n 1000 zookeeper.out

10、停止zookeeper 进程

$ ./zkServer.sh stop
11、配置 zookeeper 开机使用 root 用户启动:
编辑192.168.50.110、192.168.50.111、192.168.50.112 中的/etc/rc.local 文件,分别加入:
su - root-c '/usr/local/zookeeper-3.4.10//bin/zkServer.sh start'
su - root-c '/usr/local/zookeeper-3.4.10/bin/zkServer.sh start'
su - root-c '/usr/local/zookeeper-3.4.10/bin/zkServer.sh start'

12.zookeeper角色

Leader:

Leader 作为整个 ZooKeeper 集群的主节点,负责响应所有对 ZooKeeper 状态变更的请求。
它会将每个状态更新请求进行排序和编号,以便保证整个集群内部消息处理的 FIFO,写操

作都走 leader。

Follower 
Follower 的逻辑就比较简单了。除了响应本服务器上的读请求外,follower 还要处理
leader 的提议,并在 leader 提交该提议时在本地也进行提交。 另外需要注意的是,
leader 和 follower 构成 ZooKeeper 集群的法定人数,也就是说,只有他们才参与新 leader

的选举、响应 leader 的提议。

Observer 
如果 ZooKeeper 集群的读取负载很高,或者客户端多到跨机房,可以设置一些 observer
服务器,以提高读取的吞吐量。Observer 和 Follower 比较相似,只有一些小区别:首先
observer 不属于法定人数,即不参加选举也不响应提议;其次是 observer 不需要将事务持
久化到磁盘,一旦 observer 被重启,需要从 leader 重新同步整个名字空间。

zookeeper

-
  • 1970年01月01日 08:00

Zookeeper在windows搭建伪集群

  • 2017年10月19日 14:00
  • 221KB
  • 下载

zookeeper集群搭建实战

zookeeper集群搭建 1、搭建时的环境 CentOS 6.5 zookeeper-3.4.6.tar.gz jdk-7u25-linux-x64.gz 2、安装虚拟机  解压...
  • andyliulin
  • andyliulin
  • 2016-11-01 18:48:34
  • 738

Linux系统的Zookeeper集群环境搭建

说明:提供服务的机器数量2*n + 1 奇数台 至少要超过半数,zookeeper才可以提供服务,因为Zookeeper只允许半数宕机。 操作步骤: 下载Zookeeper安装包 下载地址:h...
  • yinkgh
  • yinkgh
  • 2016-08-24 16:49:06
  • 4945

Zookeeper+Kafka集群搭建

说明搭建zookeeper和Kafka集群: 本实验拥有3个节点,均为CentOS 7系统,分别对应IP为10.211.55.11、10.211.55.13、10.211.55.14,且均有相同用户...
  • jiecxy
  • jiecxy
  • 2016-08-28 21:52:33
  • 2542

Zookeeper 介绍 Zookeeper 搭建 Zookeeper 集群搭建

Zookeeper介绍 Zookeeper搭建 Zookeeper集群搭建
  • Jerome_s
  • Jerome_s
  • 2016-08-21 09:36:49
  • 2286

zookeeper伪分布式集群环境搭建

step1、下载 下载地址:http://zookeeper.apache.org/releases.html 将下载的压缩包放到用户家目录下(其他目录也可以) step2、解压 $tar –zxv...
  • u014513883
  • u014513883
  • 2015-08-11 15:51:55
  • 1011

ZooKeeper 单机模式和集群模式的环境搭建

ZooKeeper环境搭建下载最新稳定版的 Zookeeper使用的是最新稳定版的 zookeeper-3.4.9Standalone Operation1、 将下载的 ZooKeeper 解压,进入...
  • Mark_LQ
  • Mark_LQ
  • 2016-09-06 09:46:17
  • 10033

win10环境下搭建zookeeper伪集群

前言:zookeeper部署分单机部署,单机伪集群部署,集群部署。因为资源有限又不想单机部署,于是决定采用单机伪集群部署。 一、下载zookeeper https://mirrors.tuna.t...
  • sinat_34596644
  • sinat_34596644
  • 2017-10-19 21:41:52
  • 759

linux CentOS 7下zookeeper集群环境搭建

zookeeper集群环境搭建    zookeeper说明 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和...
  • m290345792
  • m290345792
  • 2016-09-18 19:23:11
  • 3289
收藏助手
不良信息举报
您举报文章:zookeeper 集群的搭建
举报原因:
原因补充:

(最多只允许输入30个字)