概述
Zookeeper本质上是一个分布式文件系统。适合存放小文件,也可以理解为一个数据库
Zookeeper是一个集群,将集群的文件组织起来,对外提供一个统一的访问路径。
应用场景
- 数据发布/订阅
- 命名服务
- 分布式协调/通知
- 分布式锁
- 分布式队列
准备
- 三台主机(多余三台自行扩展),分别为 node01 node02 node03
- 三台主机安装jdk8,且正确配置环境变量
- 常用软件,如vim,ssh,net-tools等
- 三台主机能相互通信,2888和3888端口未被占用
- 三台主机域名解析配置,方便通信(可选)
- 三台主机免密登录(可选)
安装部署
-
下载安装包
官网下载地址:https://zookeeper.apache.org/releases.html
也可以在后台回复 “zookeeper” 获取安装包
-
将安装包上传到node01,解压
-
配置
-
进入解压出来的目录,新建一个data文件夹
-
进入conf目录,将zoo_sample.cfg修改为zoo.cfg
-
在zoo.cfg中,增加以下几行(注意每行末位不要有空格,不然会启动不了)
4lw.commands.whitelist=* # 此处的ip 分别是node01 node02 node03的ip,自行修改 server.1=172.17.0.2:2888:3888 server.2=172.17.0.3:2888:3888 server.3=172.17.0.4:2888:3888
-
修改zoo.cfg的数据目录配置
# 将这里的路径修改为第一步创建的data文件夹的路径 dataDir=/usr/local/zookeeper/
-
-
分发
将配置好的安装包分发到node02 node03
参考以下命令
scp -r node01packages node02:path
-
为每台机器创建myid文件
-
进入在配置过程中创建的data文件夹
-
创建myid文件
vim myid
-
在myid文件中填入机器的id
每台机器myid文件中的id必须不一样,如node01的myid中填1,如node02的myid中填2,如node03的myid中填3,下图是node01的myid文件
-
-
启动
进入zookeeper的安装包下的bin目录下,执行
./zkServer.sh start
三台机器都要执行一遍
-
查询状态
./zkServer.sh status
-
停止
./zkServer.sh stop