Zookeeper-3.4.9 集群搭建

来源:互联网 发布:js秒表倒计时 编辑:程序博客网 时间:2024/06/06 02:28

这里用了三台主机,系统为CentOS6.5

[root@cetiti12 bin]# cat /etc/hosts

192.168.10.12 cetiti12
192.168.10.13 cetiti13
192.168.10.14 cetiti14

  1. 下载安装包

$wget http://mirrors.sonic.net/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz

  1. 安装

$tar zxvf zookeeper-3.4.9.tar.gz

  1. 配置

1)生成配置文件

将 zoo_sample.cfg 复制一份,命名为 zoo.cfg,此即为Zookeeper的配置文件。

$cd zookeeper-3.4.9/conf

$cp zoo_sample.cfg zoo.cfg

2)编辑配置文件zoo.cfg

zoo.cfg配置完成:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
dataLogDir=/tmp/zookeeper/logs
clientPort=2181
server.1=cetiti12:2888:3888
server.2=cetiti13:2889:3889
server.3=cetiti14:2890:3890
复制代码
说明:

dataDir 和 dataLogDir 需要在启动前创建完成
clientPort 为 zookeeper的服务端口
server.1、server.2、server.3 为 zk 集群中三个 node 的信息,定义格式为 hostname:port1:port2,其中 port1 是 node 间通信使用的端口,port2 是node 选举使用的端口,需确保三台主机的这两个端口都是互通的。
3. 更改日志配置

Zookeeper 默认会将控制台信息输出到启动路径下的 zookeeper.out 中,通过如下方法,可以让 Zookeeper 输出按尺寸切分的日志文件:

1)修改conf/log4j.properties文件,将

zookeeper.root.logger=INFO, CONSOLE改为zookeeper.root.logger=INFO, ROLLINGFILE

2)修改bin/zkEnv.sh文件,将

ZOO_LOG4J_PROP="INFO,CONSOLE"改为ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
  1. 把配置好的安装文件复制到另两台主机上

  2. 创建 myid 文件

分别在三台主机的 dataDir 路径下创建一个文件名为 myid 的文件,文件内容为该 zk 节点的编号。

例如,在第一台主机上建立的 myid 文件内容是 1,第二台是 2,第二台是 3 。

  1. 启动

启动三台主机上的 zookeeper 服务

cdzookeeper3.4.9/bin ./zkServer.sh start
返回信息:

[root@cetiti12 bin]# ./zkServer.sh start

ZooKeeper JMX enabled by default

Using config: /home/hadoop/zookeeper-3.4.9/bin/../conf/zoo.cfg

Starting zookeeper … STARTED

  1. 查看集群状态

3个节点启动完成后,可依次执行如下命令查看集群状态:

./zkServer.sh status
192.168.10.12 返回:

[root@cetiti12 bin]# ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/hadoop/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: follower

192.168.10.13 返回:

[root@cetiti13 bin]# ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/hadoop/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: leader

192.168.10.14 返回:

ZooKeeper JMX enabled by default

Using config: /home/hadoop/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: follower

如上所示,3个节点中,有1个 leader 和两个 follower。

  1. 测试集群高可用性

1)停掉集群中的为 leader 的 zookeeper 服务,本文中的leader为 server2。

$ ./zkServer.sh stop
返回信息:

[root@cetiti13 bin]# ./zkServer.sh stop

ZooKeeper JMX enabled by default

Using config: /home/hadoop/zookeeper-3.4.9/bin/../conf/zoo.cfg

Stopping zookeeper … STOPPED

2)查看集群中 server1 和 server3 的的状态

server1:

[root@cetiti12 bin]# ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/hadoop/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: follower

server3:

[root@cetiti14 bin]# ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/hadoop/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: leader

此时,server1 成为了集群中的 follower,server3为leader 。

3)启动 server2 的 zookeeper 服务,并查看状态

[root@cetiti13 bin]# ./zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/hadoop/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode: follower

此时,server2成为了集群中的 follower。

此时,Zookeeper 集群的安装及高可用性验证已完成!

原创粉丝点击