持续学习&持续更新中…
守破离
【Java从零到架构师第Ⅳ季】【03】ZooKeeper_安装、搭建集群
ZooKeeper简介
-
https://zookeeper.apache.org/
-
ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务
-
是Google的Chubby一个开源的实现,是由雅虎实现的的一个开源产品,目前是Apache的顶级开源项目;
-
ZooKeeper是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper安装
-
安装ZooKeeper之前应该确保计算机上已经安装好了JDK
-
从官网下载安装包(https://downloads.apache.org/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz),并上传至Linux服务器
-
解压到指定目录:
tar -zxvf /usr/local/soft/apache-zookeeper-3.6.0-bin.tar.gz -C /usr/local/
-
修改配置文件:
进入配置文件所在的目录:cd /usr/local/apache-zookeeper-3.6.0-bin/conf 备份一个配置文件以防万一,然后进行修改zoo.cfg:cp zoo_sample.cfg zoo.cfg 将zoo.cfg清空,然后添加如下内容: dataDir=/root/apps/zookeeper/data server.1=192.168.152.129:2888:3888 server.2=192.168.152.130:2888:3888 server.3=192.168.152.131:2888:3888 tickTime=2000 initLimit=10 syncLimit=5 clientPort=2181
-
创建数据存储目录:在/root/apps/zookeeper创建data目录:
mkdir -p /root/apps/zookeeper/data
-
在数据存储目录下创建标志文件myid:
cd /root/apps/zookeeper/data
、echo 1 > myid
-
【可选】配置Zookeeper的环境变量:
vi /etc/profile
export ZOOKEEPER_HOME=/usr/local/apache-zookeeper-3.6.0-bin export PATH=$PATH:$ZOOKEEPER_HOME/bin
使配置文件生效:
source /etc/profile
-
注意:
- 服务器1(192.168.152.129)上,myid为1;服务器2(192.168.152.130)上,myid为2;服务器3(192.168.152.131)上,myid为3
- 服务器1:clientPort=2181;服务器2:clientPort=2182;服务器3:clientPort=2183;
- 要记得关闭防火墙:
systemctl stop firewalld
-
启动服务:
/usr/local/apache-zookeeper-3.6.0-bin/bin/zkServer.sh start
./zkServer.sh start # 启动命令 ./zkServer.sh status # 查看状态命令 ./zkServer.sh stop # 停止服务命令 ./zkServer.sh restart# 停止服务命令
使用一台服务器搭建ZooKeeper集群
- 将ZooKeeper的压缩文件解压三次,分别重命名为apache-zookeeper-1、apache-zookeeper-2、apache-zookeeper-3。
- 然后在每一个ZooKeeper解压目录的conf/zoo.cfg中,将dataDir设置在自己的ZooKeeper解压目录下,例如:/usr/local/apache-zookeeper-1/data
- 并在每个zoo.cfg中添加:(假设本机IP地址:192.168.152.129)
dataDir=/usr/local/apache-zookeeper-1/data server.1=192.168.152.129:2888:3888 server.2=192.168.152.129:2887:3887 server.3=192.168.152.129:2886:3886 tickTime=2000 initLimit=10 syncLimit=5 clientPort=2181
- 注意每个ZooKeeper的myid内容和zoo.cfg中的dataDir、clientPort都得修改
注意
- 一个ZooKeeper集群一般使用2n + 1台机器,最佳实践是3台。
- 一个ZooKeeper集群应该部署到同一局域网下。
- 可以有多个ZooKeeper集群
- 查看防火墙状态:
systemctl status firewalld
、firewall-cmd --state
- 关闭防火墙:
systemctl stop firewalld
- 开机禁用防火墙:
systemctl disable firewalld
- 开机启用防火墙:
systemctl enable firewalld
参考
小码哥: Java从0到架构师④高级互联网架构师.
本文完,感谢您的关注支持!