ZooKeeper集群搭建

2020-07-25  本文已影响0人  QuoVadis_k

单机启动

下载

https://zookeeper.apache.org/releases.html#download

解压下载下来的压缩包

tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz

修改配置文件

cd conf/
mv zoo_sample.cfg zoo.cfg

这里单机启动我们就使用默认的配置文件,改个名即可

配置中的 dataDirclientPort 可以根据自己的需求改,dataDir 默认是在 /tmp 路径下的,一般是要修改的,这里演示就不做修改了 ,clentPort 可以根据自己的需要修改,默认是 2181端口

启动zk

 ./bin/zkServer.sh start

测试客户端连接zk

./bin/zkCli.sh -server 127.0.0.1:2181

输入 help 可以查看zkCli的命令,这里使用几条命令测试一下

[zk: 127.0.0.1:2181(CONNECTED) 2] ls /
[zookeeper]

[zk: 127.0.0.1:2181(CONNECTED) 15] create /test sample
Created /test

[zk: 127.0.0.1:2181(CONNECTED) 16] get /test
sample

[zk: 127.0.0.1:2181(CONNECTED) 17] set /test bar

[zk: 127.0.0.1:2181(CONNECTED) 20] get /test
bar

[zk: 127.0.0.1:2181(CONNECTED) 21] delete /test

[zk: 127.0.0.1:2181(CONNECTED) 23] ls /
[zookeeper]

集群搭建

准备工作

解压压缩包

tar -zxvf apache-zookeeper-3.6.1-bin.tar.gz

3个节点都执行一遍

修改配置文件

到随便一个节点上修改,之后scp到其他几点即可。我这里到238节点上改。

vim conf/zoo.cfg
image-20200725162308471

上面框起来的两处配置项要注意

配置文件改好后,我们还需要新建 myid 文件表示这个节点是 server.x 的哪个:到我们上面配置的 dataDir 目录下 (/data/zookeper) ,新建一个 myid 的 文件,写入 server.xx

cd /data/zookeeper
echo 1 > myid

另外两个节点也执行相同的操作,写入对应的 x :

// 192.168.199.239
cd /data/zookeeper
echo 2 > myid

// 192.168.199.240
cd /data/zookeeper
echo 3 > myid

启动zk

每个节点都执行启动命令:

./bin/zkServer.sh start

使用 jps 查看进程:

[root@localhost apache-zookeeper-3.6.1-bin]# jps
29372 Jps
29245 QuorumPeerMain

QuorumPeerMain 就是 zk 的进程了

3个节点都起来后,我们查看一下集群状态,验证是否成功启动了:

238 :

[root@localhost apache-zookeeper-3.6.1-bin]# ./bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/servers/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

239:

[root@localhost apache-zookeeper-3.6.1-bin]# ./bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/servers/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

240:

[root@localhost apache-zookeeper-3.6.1-bin]# ./bin/zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/servers/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader

可以看到 ,现在 240节点是 leader ,其他两个节点是follower , 集群已经启动成功了。

测试客户端连接zk

我们使用 zkCli 连到 240 (主节点)验证是否可以正常使用

./zkCli.sh -server 192.168.199.240:2181

[zk: 192.168.199.240:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: 192.168.199.240:2181(CONNECTED) 1] create /foo bar
Created /foo
[zk: 192.168.199.240:2181(CONNECTED) 2] ls /
[foo, zookeeper]
[zk: 192.168.199.240:2181(CONNECTED) 3] get /foo
bar

总结

ZooKeeper 作为一个基础的分布式协调服务,在很多地方都有使用 ,如 dubbo kafka solr 等 。

总的来说,整个搭建过程还是很简单的。对zk的学习还需要更多的实践到项目中,加深对其的理解和使用。


参考 :

ZooKeeper Getting Started Guide

上一篇 下一篇

猜你喜欢

热点阅读