Zookeeper | Zookeeper集群的安装部署

一、安装环境

Zookeeper集群最好至少安装3个节点,端口使用默认端口:2181。
JDK安装了1.8.0_161,JDK安装链接:https://www.jianshu.com/p/cff2b88883e4

图片.png

二、安装过程

1.下载安装包,解压

官网推荐下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/

图片.png

注:下载带bin的安装包,已经编译过的。没有带bin的为源码包,需要编译打包才能使用。

##下载
[root@node01 local]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
##解压
[root@node01 local]# tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz 
## 得到apache-zookeeper-3.6.3压缩包,重命名为zookeeper
[root@node01 local]# mv apache-zookeeper-3.6.3 zookeeper

解压后的目录:


图片.png

2.编辑配置文件

##进入conf目录
[root@node01 zookeeper]# cd conf/
##重命名配置文件为zoo.cfg
[root@node01 conf]# mv zoo_sample.cfg zoo.cfg
##修改配置文件zoo.cfg
[root@node01 conf]# vim zoo.cfg
图片.png

其他两台安装配置过程一样。

3.添加myid文件

注:集群模式下需新增一个myid的文件,存放在配置文件中那个dataDir指定的目录下,这个文件需配置对应server.x的这个x[1,2,3]值,zookeeper启动时会读取myid文件的这个值与 zoo.cfg 里面的配置信息比较,从而判断是哪个服务器节点。

##进入dataDir指定的目录下编辑myid,server1对应写上1,server2为2,server3为3
[root@node01 zookeeper]# vim myid
[root@node01 zookeeper]# cat myid 
1
图片.png

图片.png

图片.png

4.启动

进入zookeeper的bin目录,可找到启动脚本


图片.png
查看启动方法,输入./zkServer.sh,直接回车查看:
图片.png
启动zookeeper服务:
[root@node01 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
输入 jps,可查看到已启动了zk的QuorumPeerMain主进程
[root@node01 zookeeper]# jps
7240 Jps
6843 QuorumPeerMain

然后分别启动其他两台zookeeper。

5.查看节点状态

当三台节点都启动后,查看他们在集群中的状态。可看到节点1被选举为主节点,其余两个为从节点。


节点1.png

节点2.png

节点3.png

zookeeper集群部署成功

6. 测试集群

若节点1断开,另外两台会通过之前设定的3888这个端口来重新选举leader,可看出节点3被选举为新的主节点。


图片.png

图片.png

7.一键启动Zookeeper集群

编写批量启动zk的脚本
[root@node01 zookeeper]# vim zk_run_all.sh 

脚本内容:

#!/bin/bash

case $1 in
"start"){
 for node in node01 node02 node03
  do
    echo "---------$node---------"
    ssh $node "source /etc/profile;/usr/local/zookeeper/bin/zkServer.sh start"
  done
};;
"stop"){
 for node in node01 node02 node03
  do
    echo "---------$node---------"
    ssh $node "source /etc/profile;/usr/local/zookeeper/bin/zkServer.sh stop"
  done
};;
esac

node01,node02,node03是三台节点的hostname。先vim /etc/hosts 进行节点ip和hostname的映射。然后通过ssh hostname远程登入后进行操作。

给脚本赋权
[root@node01 zookeeper]# chmod +x zk_run_all.sh
运行启动脚本
[root@node01 zookeeper]# sh zk_run_all.sh start
---------node01---------
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
---------node02---------
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
---------node03---------
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

参考链接:
https://www.cnblogs.com/ding2016/p/8280696.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容