本文最后更新于 602 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com
zoookeeper常用的shell命令概述
一.znode的基础操作
1.创建znode
    zookeeper使用create命令创建znode
    create命令常用的选项:
        -e:
            创建临时znode。
        -s:
            创建带有编号的znode。
    温馨提示:
        直接在命令行输入"create"指令就可以看到其对应的帮助信息哟~
2.查看znode
    使用ls命令查看某个znode下的子znode信息,常用选项如下:
        -w:
            启用监听器watch功能。
        -s:
            查看stat命令的相关信息且查看给定znode路径的子节点信息。
        -R:
            对查看znode且查看给定znode路径的子节点信息。
    使用get命令可以查看znode中存储的数据。
        -s:
            查看stat命令的相关信息。
        -w:
            启用监听器watch功能。
    使用stat命令可以查看znode的元数据信息。
        cZxid:
            数据节点创建时的事物ID。        
        ctime:
            数据节点创建时的时间。        
        mZxid:
            数据节点最后一次更新时的事物ID。        
        mtime:
            数据节点最后一次更新时的时间。        
        pZxid:
            数据节点的子节点最后一次被修改时的事务ID。        
        cversion:
            子节点的更改次数。        
        dataVersion:
            数据节点的更改次数,即维护的是一个数据版本号。        
        aclVersion:
            节点的ACL的更改次数。        
        ephemeralOwner:
            如果节点是临时节点,则表示创建该节点的会话SessionID,如果节点是持久节点,则该属性值为0。        
        dataLength:
            数据内容的长度。        
        numChildren:
            数据节点当前的子节点的数量。
    温馨提示:
        (1)直接在命令行输入"ls","get"指令就可以看到其对应的帮助信息哟~
        (2)比较老的版本还在用"ls2"命令查看,zookeeper 3.7版本中已将其移除
3.修改znode数据
    zookeeper使用set命令修改znode数据,常用命令选项如下所示:
        -s:
            修改数据后,返回znode的stat信息。   
        -v:
            修改数据时可以指定子节点更改的次数版本("dataVersion"),这和ES的乐观锁机制有点类似哟~
4.删除znode
    zookeeper使用delete命令删除znode,要求该znode没有子znode节点哟。
    zookeeper使用deleteall命令删除包含子znode节点,生产环境中慎用哟,有点类似于linux的"rm -rf"指令。
5.课堂练习
(1)创建/oldboyedu/linux/zhibo # 有序,临时znode
(2)创建/oldboyedu/python/pachong # 临时znode
(3)创建/oldboyedu/java/javase # 有序,非临时znode
(4)创建/oldboyedu/java/bigdata # 非临时znode
(5)创建/oldboyedu/java/bigdata/hdfs # 持久znode
(6)创建/oldboyedu/java/bigdata/yarn # 临时znode
(7)创建退出当前会话,再重新登录,验证现有的znode
(8)创建删除/oldboyedu/java这个znode二.监听器案例
1.使用"get -w path"注册监听器,监听znode的数据变化
get /hadoop
set /hadoop "HADOOP2021"
get -w /hadoop  # 注意哈,此时我用"-w"监听了当前的znode。HADOOP2021
set /hadoop "SPARK"  # 当我们修改znode的数据后,在当前终端会触发相应的通知机制。
set /hadoop "FLINK"  # 当我们在此修改时,发现并没有新的通知机制,说明"-w"选项只能触发一次哟~
2.使用"stat -w path"注册监听器,监听znode的数据变化
stat -w /hadoop 
set /hadoop "Storm"
set /hadoop "HBase"
3.使用"ls -w path"注册监听器,监听znode的子节点数量的变化
ls -w /hadoop  # 注意哈,此处我启用了监听器
set /hadoop "HADOOP"  # 修改当前znode数据发现并没有触发监听器的通知机制
set /hadoop/hdfs "NN DN JN"  # 修改子znode的数据发现依旧是没有触发监听器机制
create /hadoop/hive "Hive"  # 但当我们在监听的znode节点下创建(你也可以尝试一下删除)新节点时,就会触发监听器的通知机制。
三.删除监听器
get -w /oldboy  # 注意哈,此处使用了get指令添加了一个监视器
removewatches /oldboy  # 此处我又使用"removewatches"指令删除了监听器
set /oldboy "OLDBOY"  # 当我们修改znode发现并没有触发监听器,这正是由于上面我们删除监听器导致的。