高谈风月

不共青山一笑,不与黄花一醉

0%

zookeeper伪集群部署

下载

国内:【 https://mirrors.cloud.tencent.com】

1
wget https://mirrors.cloud.tencent.com/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz

安装目录

1
2
3
4
5
6
7
8
9
10
11
mkdir /opt/zookeeper
cd /opt/zookeeper
tar -zxvf /opt/zookeeper-3.6.2.tar.gz
cp -rf /opt/zookeeper/zookeeper-3.6.2 /opt/zookeeper/zoo-node1
cp -rf /opt/zookeeper/zookeeper-3.6.2 /opt/zookeeper/zoo-node2
cp -rf /opt/zookeeper/zookeeper-3.6.2 /opt/zookeeper/zoo-node3
rm -rf /opt/zookeeper/zookeeper-3.6.2
# 这样,zookeeper的三个节点运行目录分别为:
/opt/zookeeper/zoo-node1
/opt/zookeeper/zoo-node2
/opt/zookeeper/zoo-node3

配置

zoo.cfg配置文件

zookeeper的运行,需要在conf目录配置zoo.cfg文件。我们可以参考zoo_sample.cfg进行配置。

节点1配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#zookeeper时间单元,单位为毫秒
tickTime=2000
#集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。
initLimit=10
# 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=5
# data数据目录
dataDir=/opt/zookeeper/zoo-node1/data
# 客户端连接端口
clientPort=2181
# 客户端最大连接数
#maxClientCnxns=60
# 需要保留的快照数目
#autopurge.snapRetainCount=3
# 是否开启自动清理事务日志和快照功能 0 不开启,1表示开启
#autopurge.purgeInterval=1
#集群配置
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

节点2配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#zookeeper时间单元,单位为毫秒
tickTime=2000
#集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。
initLimit=10
# 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=5
# data数据目录
dataDir=/opt/zookeeper/zoo-node2/data
# 客户端连接端口
clientPort=2182
# 客户端最大连接数
#maxClientCnxns=60
# 需要保留的快照数目
#autopurge.snapRetainCount=3
# 是否开启自动清理事务日志和快照功能 0 不开启,1表示开启
#autopurge.purgeInterval=1
#集群配置
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

节点3配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#zookeeper时间单元,单位为毫秒
tickTime=2000
#集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。
initLimit=10
# 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=5
# data数据目录
dataDir=/opt/zookeeper/zoo-node3/data
# 客户端连接端口
clientPort=2183
# 客户端最大连接数
#maxClientCnxns=60
# 需要保留的快照数目
#autopurge.snapRetainCount=3
# 是否开启自动清理事务日志和快照功能 0 不开启,1表示开启
#autopurge.purgeInterval=1
#集群配置
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

分别将上述配置文件放置在三个节点对应的conf目录下。另外,需要新建data目录

1
2
3
mkdir /opt/zookeeper/zoo-node1/data
mkdir /opt/zookeeper/zoo-node2/data
mkdir /opt/zookeeper/zoo-node3/data

myid配置文件

zookeeper还需要在data目录中配置myid文件。myid文件中存放对应节点的序号

1
2
3
echo '1'  >  /opt/zookeeper/zoo-node1/data/myid
echo '2' > /opt/zookeeper/zoo-node2/data/myid
echo '3' > /opt/zookeeper/zoo-node3/data/myid

日志路径配置

修改 bin 目录下的zkEnv.sh
将ZOO_LOG_DIR 修改为:ZOO_LOG_DIR="../logs/"

按上述方法分别修改三个节点中的zkEnv.sh文件

启动

1
2
3
/opt/zookeeper/zoo-node1/bin/zkServer.sh start
/opt/zookeeper/zoo-node2/bin/zkServer.sh start
/opt/zookeeper/zoo-node2/bin/zkServer.sh start

如此分别启动三个节点即可。
启动效果如下:

1
2
3
4
[root@localhost bin]# /opt/zookeeper/zoo-node1/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/zoo-node1/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
支持不要超过早餐费~