一、安装环境
Zookeeper集群最好至少安装3个节点,端口使用默认端口:2181。
JDK安装了1.8.0_161,JDK安装链接:https://www.jianshu.com/p/cff2b88883e4
二、安装过程
1.下载安装包,解压
官网推荐下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
注:下载带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
网友评论