zookeeper集群部署

#ZooKeeper集群安装#

1
2
3
http://mirrors.hust.edu.cn/apache/zookeeper/
http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
tar -zxvf zookeeper-3.4.9.tar.gz -C /usr/local/

进入conf目录下复制并修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
tickTime是zookeeper中的基本时间单位,此处用于定义一个ticktime是多长,单位毫秒
tickTime=2000
存储内存中的数据库快照的位置,如果没有指定dataLogDir,还将存储数据库更新的事务日志
dataDir=//usr/local/zookeeper-3.4.9/data
这里的data文件夹需要自己创建
数据库事务日志的位置
dataLogDir=/usr/local/zookeeper-3.4.9/log
这里的log文件夹需要自己创建
为了客户端连接而侦听的端口
clientPort=2181
允许Follower连接并与Leader同步的时长,单位是tickTime
initLimit=5
允许Follower与ZooKeeper同步的时长,单位是tickTime
syncLimit=2
组成ZooKeeper的成员服务器。server.x的x是服务器号,与对应服务器dataDir中myid文件内的号码一致。
指定两个端口号,前一个用于Follower连接Leader,后一个用于Leader选举。
server.1=192.168.0.1:2888:3888
server.2=192.168.0.2:2888:3888
server.3=192.168.0.3:2888:3888
这是分布式环境的配置,如果是在单机上配置,则需要修改成不同的端口号

创建节点目录

1
mkdir /usr/local/zookeeper-3.4.9/{data,log}

为节点创建 myid 文件
myid 文件用来存储本节点服务器ID,这个ID与后面配置文件中 server.ID 必须保持一致
echo “1” > /usr/local/zookeeper-3.4.9/data/myid
分别scp zookeeper-3.4.9到其他节点改对应的server.ID 文件myid
分别启动

1
/usr/local/zookeeper-3.4.9/bin/zkServer.sh start

查看状态

1
2
3
4
5
/usr/local/zookeeper-3.4.9/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower
follower和leader是随机选举

#单机部署群集#

创建节点目录

1
2
3
mkdir /home/zookeeper/data/zk1
mkdir /home/zookeeper/data/zk2
mkdir /home/zookeeper/data/zk3

为节点创建 myid 文件

1
2
3
echo "1" > /home/zookeeper/data/zk1/myid
echo "2" > /home/zookeeper/data/zk2/myid
echo "3" > /home/zookeeper/data/zk3/myid

配置文件
节点1

1
2
3
4
5
6
7
8
9
vi /home/zookeeper/data/zk1/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/data/zk1
clientPort=2181
server.1=192.168.0.1:2888:3888
server.2=192.168.0.1:2889:3889
server.3=192.168.0.1:2890:3890

节点2

1
2
3
4
5
6
7
8
9
vi /home/zookeeper/data/zk2/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/data/zk2
clientPort=2182
server.1=192.168.0.1:2888:3888
server.2=192.168.0.1:2889:3889
server.3=192.168.0.1:2890:3890

节点3

1
2
3
4
5
6
7
8
9
vi /home/zookeeper/data/zk3/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/data/zk3
clientPort=2183
server.1=192.168.0.1:2888:3888
server.2=192.168.0.1:2889:3889
server.3=192.168.0.1:2890:3890

分别启动

1
2
3
/home/zookeeper/zookeeper-3.4.9/bin/zkServer.sh start /home/zookeeper/data/zk1/zoo.cfg
/home/zookeeper/zookeeper-3.4.9/bin/zkServer.sh start /home/zookeeper/data/zk2/zoo.cfg
/home/zookeeper/zookeeper-3.4.9/bin/zkServer.sh start /home/zookeeper/data/zk3/zoo.cfg

环境变量设置
vim /etc/profile
ZK_HOME=/usr/local/zookeeper-3.4.9
expoet PATH=$ZK_HOME/bin:$PATH
并执行 source /etc/profile