zookeeper 集群安装
本次搭建,将会搭建基本的zookeeper集群,三台,(要求3+,且必须是奇数,因为zookeeper的选举算法)
1 | 架构图: |
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
8tar 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
8mkdir -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.conf1
2dataDir=/data/app/zookeeper-cluster/zookeeper-3.4.10-2/data
clientPort=2182
zoo.conf1
2dataDir=/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
可以看到下面两种模式则说明已经成功启动