zookeeper Curator(1):认识zookeeper和操作命令
文章目录
- zookeeper 概念
- zookeeper 的安装
- linux 安装zookeeper
- 下载ZooKeeper
- 解压文件
- 配置环境变量
- 创建配置文件
- 创建数据目录
- 启动ZooKeeper
- 停止ZooKeeper
- 集群模式配置(可选)
- windows 安装zookeeper
- zookeeper 数据模型
- zookeeper 服务端的常用命令
- zookeeper 客户端常用命令
- 基础连接与会话命令
- 节点操作命令
- 节点监控命令
- 集群管理命令
- 高级查询命令
- 事务操作命令
- 四字运维命令(需通过telnet或nc执行)
zookeeper 概念
- zookeeper 是Apache Hadoop 项目下的一个子项目,是一个树形目录服务。
- zookeeper 翻译过来就是 动物园管理员,它是用来管理Hadoop(大象),Hive(蜜蜂),Pig(小猪)的管理员。简称ZK。
- zookeeper 是一个分布式的,开源的分布式应用程序的协调服务。
zookeeper 提供的主要功能包括:
- 配置管理
- 分布式锁
- 集群管理
zookeeper 的安装
linux 安装zookeeper
下载ZooKeeper
访问Apache ZooKeeper官网的下载页面,选择稳定版本(如3.7.1)。下载压缩包(如apache-zookeeper-3.7.1-bin.tar.gz
)。
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
解压文件
使用以下命令解压下载的压缩包,并移动到指定目录(如/opt/zookeeper
):
tar -xzf apache-zookeeper-3.7.1-bin.tar.gz
sudo mv apache-zookeeper-3.7.1-bin /opt/zookeeper
配置环境变量
编辑~/.bashrc
或~/.zshrc
文件,添加以下内容:
export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
执行命令使配置生效:
source ~/.bashrc
创建配置文件
复制默认配置文件模板并修改:
cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg
,设置数据目录和端口(默认2181):
dataDir=/opt/zookeeper/data
clientPort=2181
创建数据目录
创建配置文件中指定的数据目录:
mkdir -p /opt/zookeeper/data
启动ZooKeeper
使用以下命令启动服务:
zkServer.sh start
验证服务状态:
zkServer.sh status
停止ZooKeeper
需要停止服务时,运行:
zkServer.sh stop
集群模式配置(可选)
如需搭建集群,需在每台服务器的zoo.cfg
中添加如下配置,并创建myid
文件:
server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
在每台服务器的dataDir
目录中创建myid
文件,内容为对应的服务器ID(如1、2、3)。
windows 安装zookeeper
安装请见:dubbo(2):zookeeper和dubbo-admin的安装
注意: dubbo-admin是用于对zookeeper监听和管理的,在此处不需要安装,故也不需要nodejs环境。
zookeeper 数据模型
-
zookeeper 是一个树形目录服务,其数据模型和unix的文件系统很类似,拥有一个层次化结构。
-
这里面的每一个节点被称为: ZNode,每个节点上都会保存自己的数据和节点信息。
-
节点可以拥有子节点,同时也允许少量数据(1MB)存储在该节点之下。
节点可以分为四大类:
-
PERSISTENT 持久化节点
-
EPHEMERAL 临时节点 : -e
-
PERSISTENT_SEQUENTIAL 持久化顺序节点 : -s
-
EPHEMERAL_SEQUENTIAL 临时化顺序节点:-es
zookeeper 服务端的常用命令
- 启动zookeeper 服务
./zkServer.sh start
- 查看zookeeper 服务状态
./zkServer.sh status
- 停止zookeeper 服务状态
./zkServer.sh stop
- 重启zookeeper 服务
./zkServer.sh restart
zookeeper 客户端常用命令
基础连接与会话命令
连接ZooKeeper服务器:
zkCli.sh -server <host:port>
创建会话后,可使用以下命令查看帮助:
help
节点操作命令
tips: 创建时,没有设置值,默认时null,需要注意和curator 区别开。
创建持久节点:
create /path "data"
创建临时节点(会话结束自动删除):
create -e /ephemeral "data"
创建顺序节点(自动追加序号):
# 不设置值
create -s /sequential
# 设置节点值data
create -s /sequential "data"
获取节点数据:
get /path
设置节点数据:
set /path "new_data"
删除节点(需无子节点):
delete /path
递归删除节点(含子节点):
deleteall /path
节点监控命令
注册数据变更监听:
get -w /path
注册子节点变更监听:
ls -w /path
集群管理命令
查看集群状态:
stat /path
查看节点ACL权限:
getAcl /path
设置节点ACL权限:
setAcl /path scheme:id:permissions
高级查询命令
列出子节点:
ls /path
递归列出所有子节点:
ls -R /path
查看节点统计信息:
stat /path
事务操作命令
开启事务:
multi
提交事务:
commit
四字运维命令(需通过telnet或nc执行)
查看服务器状态:
echo stat | nc <host> 2181
查看连接详情:
echo cons | nc <host> 2181
查看服务器角色:
echo srvr | nc <host> 2181
强制重新加载配置:
echo redo | nc <host> 2181
注意:四字命令需在zoo.cfg中配置4lw.commands.whitelist=*
开启全部权限。生产环境建议按需配置白名单。