zookeeper 分布式集群安装

zookeeper 集群安装

zookeeper 集群安装

本次搭建,将会搭建基本的zookeeper集群,三台,(要求3+,且必须是奇数,因为zookeeper的选举算法)

1
2
3
4
5
6
7
8
9
10
11
12
架构图:
+--------+
| leader |
+--------+
|
|
+----+----+----+----+
| |
| |
+----------+ +----------+
| follow 1 | | follow 2 |
+----------+ +----------+
IP 端口 模式 领导端口 选举端口
192.168.10.242 2181 leader 28881 38881
192.168.10.242 2182 follow 28882 38882
192.168.10.242 2183 follow 28883 38883

1、环境

  • Linux:CentOS release 6.5 (Final) Kernel
  • zookeeper:3.4.10

2、下载

通过http://zookeeper.apache.org/releases.html#download下载zookeeper的稳定版本,本次是下载的3.4.10

3、解压与编译

将zookeeper-3.4.10.tar.gz放入/data/app/zookeeper-cluster目录,并解压:

1
2
3
4
5
6
7
8
tar zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 zookeeper-3.4.10-1

tar zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 zookeeper-3.4.10-2

tar zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 zookeeper-3.4.10-3

4、建立/dataDir文件目录,并建立对应的myid文件

进入/data/app/zookeeper-3.4.10目录,建立如下目录

1
2
3
4
5
6
7
8
mkdir -p /data/app/zookeeper-cluster/zookeeper-3.4.10-1/data
mkdir -p /data/app/zookeeper-cluster/zookeeper-3.4.10-2/data
mkdir -p /data/app/zookeeper-cluster/zookeeper-3.4.10-3/data


echo "1" > /data/app/zookeeper-cluster/zookeeper-3.4.10-1/data/myid
echo "2" > /data/app/zookeeper-cluster/zookeeper-3.4.10-2/data/myid
echo "3" > /data/app/zookeeper-cluster/zookeeper-3.4.10-3/data/myid

5、配置文件

进入/data/app/zookeeper-cluster/zookeeper-3.4.10-1/conf目录

1
cp zoo_sample.cfg zoo.cfg

编辑zoo1.cfg配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# The number of milliseconds of each tick
# 心跳时间(毫秒数)
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
# 这个配置项标识Leader与Follower之间发送消息,请求和应答时间长度,
# 最长不能超过多少个 tickTime 的时间长度,总的时间长度就是5*2000=10秒
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
# 数据存储目录
dataDir=/data/app/zookeeper-cluster/zookeeper-3.4.10-1/data
# the port at which the clients will connect
# 客户端端口
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
# (28881端口是leader的端口,38881端口是leader挂掉后选举leader用到的通讯渠道端口)
server.1=192.168.10.242:28881:38881
server.2=192.168.10.242:28882:38882
server.3=192.168.10.242:28883:38883

复制zoo.cfg配置到对应目录,修改对应dataDir与clientPort
zoo.conf

1
2
dataDir=/data/app/zookeeper-cluster/zookeeper-3.4.10-2/data
clientPort=2182

zoo.conf

1
2
dataDir=/data/app/zookeeper-cluster/zookeeper-3.4.10-3/data
clientPort=2183

注意:
1.此次配置的server.x要与之前写入myid文件中的数字对应
2.另外由于本次的三个zookeeper均在一台机器上,所以此次的server.1、server.2及server.3中的leader的端口与选举leader的端口是不一致的,如果部署在多台机器上,这三台配置的端口就不用这么折腾了,用同一份配置就好。

6、启动服务

进入bin目录

1
./zkServer.sh start

7、验证服务是否启动

进入bin目录

1
./zkServer.sh status

可以看到下面两种模式则说明已经成功启动
Mode:follow

Mode:leader