本文为博主原创,未经允许不得转载:

目录:

  1. znode 节点特性 

  2. zookeeper 的四种节点类型及适用场景分析

  3. zookeeper 客户端常用操作命令

  4. znode 数据增删改查

  5. 节点属性查看

  6. 节点的监听

  7. acl权限设置

1. znode 节点特性  

  zookeeper 中节点叫znode存储结构上跟文件系统类似,以树级结构进行存储。不同之外在于znode没有目录的概念,不能执行类似cd之类的命令。

  znode结点属性如下:

    1 path:唯一路径

    2 childNode:子节点

    3 stat:状态属性

    4 type:节点类型

2. zookeeper 的四种节点类型及适用场景分析:

类型

描述

命令

适用场景

PERSISTENT

持久节点

create /test

PERSISTENT_SEQUENTIAL

持久顺序节点

create -s /test

适合用于分布式锁、分布式选举等场景

EPHEMERAL

临时节点(不可在拥有子节点)

create -e /temp

适用于心跳,服务发现等场景

EPHEMERAL_SEQUENTIAL

临时顺序节点(不可在拥有子节点)

create -e -s /temp/seq

 

3. zookeeper 客户端常用操作命令:

#创建节点
create [-s] [-e] [-c] [-t ttl] path [data] [acl] #删除节点,(不能存在子节点)
deleteall path #查看节点数据 -s 包含节点状态 -w 添加监听
get [-s] [-w] path #查看执行的历史记录
history  #设置值
set [-s] [-v version] path data #为节点设置ACL权限
setAcl [-s] [-v version] [-R] path acl #查看节点状态 -w 添加监听
stat [-w] path

  创建一个临时顺序节点,并查看:

  临时节点在会话关闭的时候即会删除。   

4. znode 数据增删改查:

# 列出子节点
ls /
#创建节点
create /test "test is good man"
# 查看节点
get /test
# 创建子节点
create /test/sex "man"
# 设置节点值
set /test/sex "man"
# 删除节点
delete /test/sex
# 删除所有节点 包括子节点
deleteall /test

5. 节点属性查看

# 查看节点属性
stat /test

  其属性说明如下:

#创建节点的事物ID
cZxid = 0x385
#创建时间
ctime = Wed Jul 21 22:37:01 CST 2021
#修改节点的事物ID
mZxid = 0x385
#最后修改时间
mtime = Wed Jul 21 22:37:01 CST 2021
# 子节点变更的事物ID
pZxid = 0x385
#这表示对此znode的子节点进行的更改次数(不包括子节点)
cversion = 0
# 数据版本,变更次数
dataVersion = 0
#权限版本,变更次数
aclVersion = 0
#临时节点所属会话ID
ephemeralOwner = 0x0
#数据长度
dataLength = 17
#子节点数(不包括子子节点)
numChildren = 0

6. 节点的监听:

  客户添加 -w 参数可实时监听节点与子节点的变化,并且实时收到通知。非常适用保障分布式情况下的数据一至性。其使用方式如下:

命令

描述

ls -w path

监听子节点的变化(增,删)

get -w path

监听节点数据的变化

stat -w path

监听节点属性的变化

printwatches on|off

触发监听后,是否打印监听事件(默认on)

7. acl权限设置

    ACL全称为Access Control List(访问控制列表),用于控制资源的访问权限。ZooKeeper使用ACL来控制对其znode的防问。基于scheme:id:permission的方式

  进行权限控制。scheme表示授权模式、id模式对应值、permission即具体的增删改权限位。

  scheme:认证模型

方案

描述

world

开放模式,world表示全世界都可以访问(这是默认设置)

ip

ip模式,限定客户端IP防问

auth

用户密码认证模式,只有在会话中添加了认证才可以防问

digest

与auth类似,区别在于auth用明文密码,而digest 用sha-1+base64加密后的密码。在实际使用中digest 更常见。

  permission权限位

      

权限位

权限

描述

c

CREATE

可以创建子节点

d

DELETE

可以删除子节点(仅下一级节点)

r

READ

可以读取节点数据及显示子节点列表

w

WRITE

可以设置节点数据

a

ADMIN

可以设置节点访问控制列表权限

  

  acl 相关命令:

命令

使用方式

描述

getAcl

getAcl <path>

读取ACL权限

setAcl

setAcl <path> <acl>

设置ACL权限

addauth

addauth <scheme> <auth>

添加认证用户

   查看所有跟节点,并查看controller 节点的acl 权限

                

    设置 节点 acl 权限

    

zookeeper 节点介绍及节点常用命令总结的更多相关文章

  1. zookeeper客户端 zkCli使用及常用命令

    上篇(http://www.cnblogs.com/yangzhenlong/p/8270835.html)zk伪集群搭建好后,使用zkCli连接zk服务 切换到zk1/bin 目录,执行zkCli. ...

  2. Java篇:Docker的介绍安装 和常用命令

    文章目录 为什么 出现docker Docker的简介 容器(Container) 镜像(Image) 仓库(Repository) Docker的安装 查看容器 删除镜像 删除容器 部署应用 以my ...

  3. git介绍以及一些常用命令,加上vim编辑器的简单使用

    https://www.jianshu.com/p/04a6517869b4 vim:进入vim编辑器,如果后接文件名,则进入该文件的编辑模式,看图:①.vim编辑器中,按i进入编辑模式:②.按Esc ...

  4. ros中关于节点、话题、服务以及自定义消息等在终端中的常用命令

    以下面的计算力图说明 节点相关常用命令 在终端中查看项目中有哪些节点命令:rosnode list 有了节点信息想要查看节点中到底发布订阅了哪些话题,作为服务端服务类型或者作为客户端需要的服务类型以上 ...

  5. Consul常用命令

    1.consul启动# consul agent -dev # -dev表示开发模式运行,另外还有-server表示服务模式运行 注意:-dev节点的启动不能用于生产环境,因为该模式下不会持久化任何状 ...

  6. 版本控制-Git服务器搭建和常用命令使用

    Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...

  7. CentOS 常用命令大全

    下面,就给大家介绍这些CentOS常用命令. 一:使用CentOS常用命令查看cpu more /proc/cpuinfo | grep "model name" grep &qu ...

  8. Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令

    通过前面两篇博客,我们介绍了Linux系统的权限管理.Linux权限管理之ACL权限 介绍了通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限,这在Linux只能对于一个文件只能有所有者权限 ...

  9. Java常用命令与参数设置

    我介绍的JDK版本: 首先.介绍下JDK常用参数设置,如下是我个人环境的参数: -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m 我们 ...

  10. aix 常用命令

    官网上的介绍: AIX 常用命令汇总 http://www.ibm.com/developerworks/cn/aix/library/au-dutta_cmds.html 我们先SSH 到AIX 系 ...

随机推荐

  1. 数字孪生系统为何需要将GIS系统进行融合?

    数字孪生是一种通过数字模型实时仿真现实世界的技术,而GIS(地理信息系统)则是用于收集.存储.处理和展示地理数据的工具.将数字孪生系统与GIS系统进行融合,可以为各行业带来诸多优势和创新.那么数字孪生 ...

  2. ​3D 高斯点染简介

    3D 高斯点染技术由 3D Gaussian Splatting for Real-Time Radiance Field Rendering 一文首次提出.作为一种栅格化技术,3D 高斯点染可用于实 ...

  3. 将MultipartFile对象转换成File对象

    将MultipartFile对象转换成File对象 // 将MultipartFile对象转换成File对象 private File convertToFile(MultipartFile mult ...

  4. ElasticSearch之Get index API

    获取指定索引的基本信息. 命令样例如下: curl -X GET "https://localhost:9200/testindex_001?pretty" --cacert $E ...

  5. ElasticSearch之系统关键配置

    ElasticSearch之系统关键配置 集群名称 在配置文件$ES_HOME/config/elasticsearch.yml中指定,样例如下: cluster: name: logging-pro ...

  6. wasm+pygbag让你在网页上也能运行Python代码:【贪吃蛇游戏】

    引言 最近小伙伴告诉我一种新的方法,可以使用wasm来使浏览器网页能够运行Python代码.这一下子激起了我的兴趣,因为这意味着用户无需安装Python环境就能直接运行我的demo,这真是太方便了.所 ...

  7. 以小博大外小内大,Db数据库SQL优化之小数据驱动大数据

    SQL优化中,有一条放之四海而皆准的既定方针,那就是:永远以小数据驱动大数据.其本质其实就是以小的数据样本作为驱动查询能够优化查询效率,在SQL中,涉及到不同表数据的连接.转移.或者合并,这些操作必须 ...

  8. 带你认识大模型训练关键算法:分布式训练Allreduce算法

    摘要:现在的模型以及其参数愈加复杂,仅仅一两张的卡已经无法满足现如今训练规模的要求,分布式训练应运而生. 本文分享自华为云社区<分布式训练Allreduce算法>,原文作者:我抽签必中. ...

  9. 带你了解 HBase 数据模型和 HBase 架构

    摘要:HBase 是一个面向列的 NoSQL 数据库. 本文分享自华为云社区<HBase 架构:HBase 数据模型 & HBase 读/写机制>,作者: Donglian Lin ...

  10. HIVE报错 need to specify partition columns because the destination table is partitioned

    解决 分区需要指定分区 insert into table XXX partition(分区='')