Zookeeper

目錄
一.Zookeeper概述:
????1.1 概述:
????1.2 特點(diǎn):
????1.3數(shù)據(jù)結(jié)構(gòu)
????1.4 應(yīng)用場(chǎng)景:
二 Zookeeper安裝
????2.1 本地模式安裝部署
????2.2 配置參數(shù)解讀
三 Zookeeper內(nèi)部原理
????3.1 選舉機(jī)制
????3.2 節(jié)點(diǎn)類型
????3.3 stat結(jié)構(gòu)體
????3.4 監(jiān)聽(tīng)器原理
????3.5 寫數(shù)據(jù)流程
四 Zookeeper實(shí)戰(zhàn)
????4.1 分布式安裝部署
????4.2 客戶端命令行操作

一.Zookeeper概述:

1.1 概述:

????Zookeeper是一個(gè)開(kāi)源的分布式的毛肋,為分布式應(yīng)用提供協(xié)調(diào)服務(wù)的Apache項(xiàng)目府适。Hadoop和Hbase的重要組件方灾。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)壶辜、域名服務(wù)捂寿、分布式同步龙优、組服務(wù)等。

1.2 特點(diǎn):

(1)Zookeeper:一個(gè)領(lǐng)導(dǎo)者(leader)怎顾,多個(gè)跟隨者(follower)組成的集群。

(2)Leader負(fù)責(zé)進(jìn)行投票的發(fā)起和決議教翩,更新系統(tǒng)狀態(tài)杆勇。

(3)Follower用于接收客戶請(qǐng)求并向客戶端返回結(jié)果,在選舉Leader過(guò)程中參與投票饱亿。

(4)集群中奇數(shù)臺(tái)服務(wù)器只要有半數(shù)以上節(jié)點(diǎn)存活蚜退,Zookeeper集群就能正常服務(wù)。

(5)全局?jǐn)?shù)據(jù)一致:每個(gè)server保存一份相同的數(shù)據(jù)副本彪笼,client無(wú)論連接到哪個(gè)server钻注,數(shù)據(jù)都是一致的。

(6)更新請(qǐng)求順序進(jìn)行配猫,來(lái)自同一個(gè)client的更新請(qǐng)求按其發(fā)送順序依次執(zhí)行幅恋。

(7)數(shù)據(jù)更新原子性,一次數(shù)據(jù)更新要么成功泵肄,要么失敗捆交。

(8)實(shí)時(shí)性,在一定時(shí)間范圍內(nèi)腐巢,client能讀到最新數(shù)據(jù)品追。

1.3數(shù)據(jù)結(jié)構(gòu):

????ZooKeeper數(shù)據(jù)模型的結(jié)構(gòu)與Unix文件系統(tǒng)很類似,整體上可以看作是一棵樹(shù)冯丙,每個(gè)節(jié)點(diǎn)稱做一個(gè)ZNode肉瓦。每一個(gè)ZNode默認(rèn)能夠存儲(chǔ)1MB的元數(shù)據(jù),每個(gè)ZNode都可以通過(guò)其路徑唯一標(biāo)識(shí)

ZooKeeper數(shù)據(jù)結(jié)構(gòu)

1.4 應(yīng)用場(chǎng)景:

1.4.1統(tǒng)一命名服務(wù)
統(tǒng)一命名服務(wù)
1.4.2 統(tǒng)一配置管理
1.分布式環(huán)境下,配置文件管理和同步是一個(gè)常見(jiàn)問(wèn)題

(1)一個(gè)集群中泞莉,所有節(jié)點(diǎn)的配置信息是一致的哪雕,比如hadoop集群

(2)對(duì)配置文件修改后,希望能夠快速同步到各個(gè)節(jié)點(diǎn)上

2.配置管理可交由ZK實(shí)現(xiàn)

(1)可配置信息寫入ZK上的一個(gè)Znode

(2)各個(gè)節(jié)點(diǎn)監(jiān)聽(tīng)這個(gè)ZNode

(3)一旦Znode中的數(shù)據(jù)被修改鲫趁,ZK將通知各個(gè)節(jié)點(diǎn)

配置管理
1.4.3統(tǒng)一集群管理

集群管理結(jié)構(gòu)圖如下所示斯嚎。

1.分布式環(huán)境中,實(shí)時(shí)掌握每個(gè)節(jié)點(diǎn)的狀態(tài)是必要的饮寞。

(1)可根據(jù)節(jié)點(diǎn)實(shí)時(shí)做出一些調(diào)整

2.可交由Zk實(shí)現(xiàn)

(1)可將節(jié)點(diǎn)信息寫入ZK上的一個(gè)ZNode

(2)監(jiān)聽(tīng)這個(gè)Znode可獲取它的實(shí)時(shí)狀態(tài)變化

3.典型應(yīng)用

(1)HBase中Master狀態(tài)監(jiān)控與選舉

集群管理
1.4.4 服務(wù)器節(jié)點(diǎn)動(dòng)態(tài)上下線
服務(wù)器動(dòng)態(tài)上下線
1.4.5 軟負(fù)載均衡
軟負(fù)載均衡

二 Zookeeper安裝

2.1 本地模式安裝部署
1.安裝前準(zhǔn)備:

(1)安裝jdk
(2)上傳zookeeper到linux系統(tǒng)下
(3)解壓到指定目錄

tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/
解壓

(4)配置環(huán)境變量

輸入命令:

vi /etc/profile

添加內(nèi)容:

export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin
環(huán)境變量
2.配置修改

(1)將/opt/module/zookeeper-3.4.10/conf這個(gè)路徑下的zoo_sample.cfg修改為zoo.cfg孝扛;

mv zoo_sample.cfg  zoo.cfg

(2)進(jìn)入zoo.cfg文件:

vim zoo.cfg

(3)修改dataDir路徑為

dataDir=/opt/module/zookeeper-3.4.10/zkData

(4)在/opt/module/zookeeper-3.4.10/這個(gè)目錄上創(chuàng)建zkData文件夾

cd /opt/module/zookeeper-3.4.10 

mkdir zkData
創(chuàng)建文件夾
3.操作zookeeper

(1)啟動(dòng)zookeeper

bin/zkServer.sh start

(2)查看進(jìn)程是否啟動(dòng)

jps

(3)查看狀態(tài):

bin/zkServer.sh status

(4)啟動(dòng)客戶端:

bin/zkCli.sh
啟動(dòng)客戶端

(5)退出客戶端:

quit
退出客戶端

(6)停止zookeeper

bin/zkServer.sh stop
停止zookeeper
2.2 配置參數(shù)解讀

????解讀zoo.cfg文件中參數(shù)含義

參數(shù)解讀

(1)tickTime=2000:通信心跳數(shù),Zookeeper服務(wù)器心跳時(shí)間幽崩,單位毫秒
????Zookeeper使用的基本時(shí)間苦始,服務(wù)器之間或客戶端與服務(wù)器之間維持心跳的時(shí)間間隔,也就是每個(gè)tickTime時(shí)間就會(huì)發(fā)送一個(gè)心跳慌申,時(shí)間單位為毫秒陌选。
它用于心跳機(jī)制,并且設(shè)置最小的session超時(shí)時(shí)間為兩倍心跳時(shí)間蹄溉。(session的最小超時(shí)時(shí)間是2*tickTime)

(2)initLimit=10:Leader和Follower初始通信時(shí)限
????集群中的follower跟隨者服務(wù)器與leader領(lǐng)導(dǎo)者服務(wù)器之間初始連接時(shí)能容忍的最多心跳數(shù)(tickTime的數(shù)量)咨油,用它來(lái)限定集群中的Zookeeper服務(wù)器連接到Leader的時(shí)限。
投票選舉新leader的初始化時(shí)間
????Follower在啟動(dòng)過(guò)程中柒爵,會(huì)從Leader同步所有最新數(shù)據(jù)役电,然后確定自己能夠?qū)ν夥?wù)的起始狀態(tài)。
????Leader允許Follower在initLimit時(shí)間內(nèi)完成這個(gè)工作棉胀。

(3)syncLimit=5:Leader和Follower同步通信時(shí)限

????集群中Leader與Follower之間的最大響應(yīng)時(shí)間單位法瑟,假如響應(yīng)超過(guò)syncLimit * tickTime,Leader認(rèn)為Follwer死掉唁奢,從服務(wù)器列表中刪除Follwer霎挟。
????在運(yùn)行過(guò)程中,Leader負(fù)責(zé)與ZK集群中所有機(jī)器進(jìn)行通信麻掸,例如通過(guò)一些心跳檢測(cè)機(jī)制酥夭,來(lái)檢測(cè)機(jī)器的存活狀態(tài)。
????如果L發(fā)出心跳包在syncLimit之后脊奋,還沒(méi)有從F那收到響應(yīng)熬北,那么就認(rèn)為這個(gè)F已經(jīng)不在線了。

(4)dataDir:數(shù)據(jù)文件目錄+數(shù)據(jù)持久化路徑
????保存內(nèi)存數(shù)據(jù)庫(kù)快照信息的位置诚隙,如果沒(méi)有其他說(shuō)明讶隐,更新的事務(wù)日志也保存到數(shù)據(jù)庫(kù)。

(5)clientPort=2181:客戶端連接端口
????監(jiān)聽(tīng)客戶端連接的端口

三 Zookeeper內(nèi)部原理

3.1 選舉機(jī)制

Server ID: myid(權(quán)重越大)
Zxid:數(shù)據(jù)ID(先一數(shù)據(jù)低進(jìn)行選擇)

1.半數(shù)機(jī)制(Paxos 協(xié)議):

????集群中半數(shù)以上機(jī)器存活最楷,集群可用整份。所以zookeeper適合裝在奇數(shù)臺(tái)機(jī)器上。

2.Zookeeper雖然在配置文件中并沒(méi)有指定master和slave籽孙。

????但是烈评,zookeeper工作時(shí),是有一個(gè)節(jié)點(diǎn)為leader犯建,其他則為follower讲冠,Leader是通過(guò)內(nèi)部的選舉機(jī)制臨時(shí)產(chǎn)生的。

3.以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明整個(gè)選舉的過(guò)程适瓦。

????假設(shè)有五臺(tái)服務(wù)器組成的zookeeper集群竿开,它們的id從1-5,同時(shí)它們都是最新啟動(dòng)的玻熙,也就是沒(méi)有歷史數(shù)據(jù)否彩,在存放數(shù)據(jù)量這一點(diǎn)上,都是一樣的嗦随。假設(shè)這些服務(wù)器依序啟動(dòng)列荔,來(lái)看看會(huì)發(fā)生什么。

  • (1)服務(wù)器1啟動(dòng)枚尼,此時(shí)只有它一臺(tái)服務(wù)器啟動(dòng)了贴浙,它發(fā)出去的報(bào)沒(méi)有任何響應(yīng),所以它的選舉狀態(tài)一直是LOOKING狀態(tài)署恍。
  • (2)服務(wù)器2啟動(dòng)崎溃,它與最開(kāi)始啟動(dòng)的服務(wù)器1進(jìn)行通信,互相交換自己的選舉結(jié)果盯质,由于兩者都沒(méi)有歷史數(shù)據(jù)袁串,所以id值較大的服務(wù)器2勝出,但是由于沒(méi)有達(dá)到超過(guò)半數(shù)以上的服務(wù)器都同意選舉它(這個(gè)例子中的半數(shù)以上是3)唤殴,所以服務(wù)器1般婆、2還是繼續(xù)保持LOOKING狀態(tài)。
  • (3)服務(wù)器3啟動(dòng)朵逝,根據(jù)前面的理論分析蔚袍,服務(wù)器3成為服務(wù)器1、2配名、3中的老大啤咽,而與上面不同的是,此時(shí)有三臺(tái)服務(wù)器選舉了它渠脉,所以它成為了這次選舉的leader宇整。
  • (4)服務(wù)器4啟動(dòng),根據(jù)前面的分析芋膘,理論上服務(wù)器4應(yīng)該是服務(wù)器1鳞青、2霸饲、3、4中最大的臂拓,但是由于前面已經(jīng)有半數(shù)以上的服務(wù)器選舉了服務(wù)器3厚脉,所以它只能接收當(dāng)小弟的命了。
  • (5)服務(wù)器5啟動(dòng)胶惰,同4一樣當(dāng)小弟傻工。

3.2 節(jié)點(diǎn)類型

1.Znode有兩種類型:
  • 短暫(ephemeral):客戶端和服務(wù)器端斷開(kāi)連接后,創(chuàng)建的節(jié)點(diǎn)自己刪除
  • 持久(persistent):客戶端和服務(wù)器端斷開(kāi)連接后孵滞,創(chuàng)建的節(jié)點(diǎn)不刪除
2.Znode有四種形式的目錄節(jié)點(diǎn)(默認(rèn)是persistent )

(1)持久化目錄節(jié)點(diǎn)(PERSISTENT)(小寫:persistent)

????客戶端與zookeeper斷開(kāi)連接后中捆,該節(jié)點(diǎn)依舊存在。

(2)持久化順序編號(hào)目錄節(jié)點(diǎn)(PERSISTENT_SEQUENTIAL)(小寫:persistent_sequential)

????客戶端與zookeeper斷開(kāi)連接后坊饶,該節(jié)點(diǎn)依舊存在泄伪,只是Zookeeper給該節(jié)點(diǎn)名稱進(jìn)行順序編號(hào)。

(3)臨時(shí)目錄節(jié)點(diǎn)(EPHEMERAL)(ephemeral)

????客戶端與zookeeper斷開(kāi)連接后匿级,該節(jié)點(diǎn)被刪除臂容。

(4)臨時(shí)順序編號(hào)目錄節(jié)點(diǎn)(EPHEMERAL_SEQUENTIAL)(ephemeral_sequential)

????客戶端與zookeeper斷開(kāi)連接后,該節(jié)點(diǎn)被刪除根蟹,只是Zookeeper給該節(jié)點(diǎn)名稱進(jìn)行順序編號(hào)脓杉。

3.創(chuàng)建znode時(shí)設(shè)置順序標(biāo)識(shí),znode名稱后會(huì)附加一個(gè)值简逮,順序號(hào)是一個(gè)單調(diào)遞增的計(jì)數(shù)器球散,由父節(jié)點(diǎn)維護(hù)
4.在分布式系統(tǒng)中,順序號(hào)可以被用于為所有的事件進(jìn)行全局排序散庶,這樣客戶端可以通過(guò)順序號(hào)推斷事件的順序

3.3 stat結(jié)構(gòu)體

1.czxid- 引起這個(gè)znode創(chuàng)建的zxid蕉堰,創(chuàng)建節(jié)點(diǎn)的事務(wù)的zxid

????每次修改ZooKeeper狀態(tài)都會(huì)收到一個(gè)zxid形式的時(shí)間戳,也就是ZooKeeper事務(wù)ID悲龟。
????事務(wù)ID是ZooKeeper中所有修改總的次序屋讶。每個(gè)修改都有唯一的zxid,如果zxid1小于zxid2须教,那么zxid1在zxid2之前發(fā)生皿渗。

2.ctime - znode被創(chuàng)建的毫秒數(shù)(從1970年開(kāi)始)
3.mzxid - znode最后更新的zxid
4.mtime - znode最后修改的毫秒數(shù)(從1970年開(kāi)始)
5.pZxid-znode最后更新的子節(jié)點(diǎn)zxid
6.cversion - znode子節(jié)點(diǎn)變化號(hào),znode子節(jié)點(diǎn)修改次數(shù)
7.dataversion - znode數(shù)據(jù)變化號(hào)
8.aclVersion - znode訪問(wèn)控制列表的變化號(hào)
9.ephemeralOwner- 如果是臨時(shí)節(jié)點(diǎn)轻腺,這個(gè)是znode擁有者的session id乐疆。如果不是臨時(shí)節(jié)點(diǎn)則是0。
10.dataLength- znode的數(shù)據(jù)長(zhǎng)度
11.numChildren - znode子節(jié)點(diǎn)數(shù)量

3.4 監(jiān)聽(tīng)器原理

1.監(jiān)聽(tīng)原理詳解:

(1) 首先要有一個(gè)main()線程

(2) 在main線程中創(chuàng)建ZK客戶端贬养,這是會(huì)創(chuàng)建兩個(gè)線程挤土,一個(gè)負(fù)責(zé)網(wǎng)絡(luò)連接通信(connect),一個(gè)負(fù)責(zé)監(jiān)聽(tīng)(listener)

(3) 通過(guò)connect線程將注冊(cè)的監(jiān)聽(tīng)事件發(fā)送給ZK

(4) 在ZK的注冊(cè)監(jiān)聽(tīng)器列表中將注冊(cè)的監(jiān)聽(tīng)事件添加到列表中

(5) ZK監(jiān)聽(tīng)到有數(shù)據(jù)或路徑發(fā)生變化時(shí),就會(huì)將這個(gè)消息發(fā)送給listener線程

(6) Listener線程內(nèi)部調(diào)用process()方法

2.常見(jiàn)的監(jiān)聽(tīng)

1.監(jiān)聽(tīng)節(jié)點(diǎn)數(shù)據(jù)的變化

Get path [watch]

2.監(jiān)聽(tīng)子節(jié)點(diǎn)增減的變化

Ls path [watch]
監(jiān)聽(tīng)器原理

3.5 寫數(shù)據(jù)流程

寫數(shù)據(jù)流程

????讀是局部性的误算,即client只需要從與它相連的server上讀取數(shù)據(jù)即可仰美;而client有寫請(qǐng)求的話迷殿,與之相連的server會(huì)通知leader,然后leader會(huì)把寫操作分發(fā)給所有server咖杂。所以定要比讀慢很多贪庙。

四 Zookeeper實(shí)戰(zhàn)

4.1 分布式安裝部署

1.集群規(guī)劃

在hadoop1、hadoop2和hadoop3三個(gè)節(jié)點(diǎn)上部署Zookeeper翰苫。

2.解壓安裝

(1)解壓zookeeper安裝包到/opt/module/目錄下

tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/

(2)在/opt/module/zookeeper-3.4.10/這個(gè)目錄下創(chuàng)建zkData

mkdir -p zkData

(3)重命名/opt/module/zookeeper-3.4.10/conf這個(gè)目錄下的zoo_sample.cfg為zoo.cfg

mv zoo_sample.cfg zoo.cfg
2.配置zoo.cfg文件

(1)具體配置

vi /opt/module/zookeeper-3.4.10/conf/zoo.cfg

修改內(nèi)容:

dataDir=/opt/module/zookeeper-3.4.10/zkData

增加如下配置

#######################cluster##########################

server.1=hadoop1:2888:3888

server.2=hadoop2:2888:3888

server.3=hadoop3:2888:3888
zoo.cfg

(2)配置參數(shù)解讀

Server.A=B:C:D。
  • A是一個(gè)數(shù)字这橙,表示這個(gè)是第幾號(hào)服務(wù)器奏窑;

  • B是這個(gè)服務(wù)器的ip地址;

  • C是這個(gè)服務(wù)器與集群中的Leader服務(wù)器交換信息的端口屈扎;

  • D是萬(wàn)一集群中的Leader服務(wù)器掛了埃唯,需要一個(gè)端口來(lái)重新進(jìn)行選舉,選出一個(gè)新的Leader鹰晨,而這個(gè)端口就是用來(lái)執(zhí)行選舉時(shí)服務(wù)器相互通信的端口墨叛。

????集群模式下配置一個(gè)文件myid,這個(gè)文件在dataDir目錄下模蜡,這個(gè)文件里面有一個(gè)數(shù)據(jù)就是A的值漠趁,Zookeeper啟動(dòng)時(shí)讀取此文件,拿到里面的數(shù)據(jù)與zoo.cfg里面的配置信息比較從而判斷到底是哪個(gè)server忍疾。

3.集群操作

(1)在/opt/module/zookeeper-3.4.10/zkData目錄下創(chuàng)建一個(gè)myid的文件

touch myid

添加myid文件闯传,注意一定要在linux里面創(chuàng)建,在notepad++里面很可能亂碼
(2)編輯myid文件

vi myid

在文件中添加與server對(duì)應(yīng)的編號(hào):如1


1
myid

(3)拷貝配置好的zookeeper到其他機(jī)器上
并分別修改myid文件中內(nèi)容為3卤妒、4,并修改環(huán)境變量甥绿,和hadoop1一樣

scp -r /opt/module/zookeeper-3.4.10/ root@hadoop2:/opt/module/

scp -r /opt/module/zookeeper-3.4.10/ root@hadoop3:/opt/module/
拷貝
2
myid
3
myid

(4)三臺(tái)都修改環(huán)境變量

vi /etc/profile

修改內(nèi)容:

export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin

使環(huán)境變量生效:

source /etc/profile
修改環(huán)境變量

(5)分別啟動(dòng)zookeeper
hadoop1:

bin/zkServer.sh start

hadoop2

bin/zkServer.sh start

hadoop3

bin/zkServer.sh start

(5)查看狀態(tài)

bin/zkServer.sh status
hadoop1查看狀態(tài)
bin/zkServer.sh status
hadoop2查看狀態(tài)
bin/zkServer.sh status
hadoop3查看狀態(tài)
4.2 客戶端命令行操作
命令基本語(yǔ)法 功能描述
help 顯示所有操作命令
ls path [watch] 使用 ls 命令來(lái)查看當(dāng)前znode中所包含的內(nèi)容
ls2 path [watch] 查看當(dāng)前節(jié)點(diǎn)數(shù)據(jù)并能看到更新次數(shù)等數(shù)據(jù)
create 普通創(chuàng)建(永久節(jié)點(diǎn))
-s 含有序列
-e 臨時(shí)(重啟或者超時(shí)消失)
get path [watch] 獲得節(jié)點(diǎn)的值
set 設(shè)置節(jié)點(diǎn)的具體值
stat 查看節(jié)點(diǎn)狀態(tài)
delete 刪除節(jié)點(diǎn)
rmr 遞歸刪除節(jié)點(diǎn)
1.啟動(dòng)客戶端
bin/zkCli.sh
2.顯示所有操作命令
help
help
3.查看當(dāng)前znode中所包含的內(nèi)容
ls /
ls /
4.查看當(dāng)前節(jié)點(diǎn)數(shù)據(jù)并能看到更新次數(shù)等數(shù)據(jù)
ls2 /
ls2 /
5.創(chuàng)建普通節(jié)點(diǎn)
create /app1 "hello app1"
create /app1 "hello app1"
create /app1/server101 "192.168.1.101"
create /app1/server101 "192.168.1.101"
6.獲得節(jié)點(diǎn)的值
get /app1
get /app1
get /app1/server101
get /app1/server101
7.創(chuàng)建短暫節(jié)點(diǎn)
create -e /app-emphemeral 8888

(1)在當(dāng)前客戶端是能查看到的

ls /
ls /

(2)退出當(dāng)前客戶端然后再重啟客戶端

quit

bin/zkCli.sh

(3)再次查看根目錄下短暫節(jié)點(diǎn)已經(jīng)刪除

ls /
ls /
8.創(chuàng)建帶序號(hào)的節(jié)點(diǎn)

(1)先創(chuàng)建一個(gè)普通的根節(jié)點(diǎn)app2

create /app2 "app2"

(2)創(chuàng)建帶序號(hào)的節(jié)點(diǎn)

create -s /app2/aa 888
create -s /app2/bb 888
create -s /app2/cc 888

如果原節(jié)點(diǎn)下有1個(gè)節(jié)點(diǎn),則再排序時(shí)從1開(kāi)始则披,以此類推共缕。

create -s /app1/aa 888
9.修改節(jié)點(diǎn)數(shù)據(jù)值
set /app1 999
set /app1 999
10.節(jié)點(diǎn)的值變化監(jiān)聽(tīng)

(1)在104主機(jī)上注冊(cè)監(jiān)聽(tīng)/app1節(jié)點(diǎn)數(shù)據(jù)變化

get /app1 watch
get /app1 watch

(2)在103主機(jī)上修改/app1節(jié)點(diǎn)的數(shù)據(jù)

set /app1  777

(3)觀察104主機(jī)收到數(shù)據(jù)變化的監(jiān)聽(tīng)


11.節(jié)點(diǎn)的子節(jié)點(diǎn)變化監(jiān)聽(tīng)(路徑變化)

(1)在104主機(jī)上注冊(cè)監(jiān)聽(tīng)/app1節(jié)點(diǎn)的子節(jié)點(diǎn)變化

ls /app1 watch
image.png

(2)在103主機(jī)/app1節(jié)點(diǎn)上創(chuàng)建子節(jié)點(diǎn)

create /app1/bb 666

(3)觀察104主機(jī)收到子節(jié)點(diǎn)變化的監(jiān)聽(tīng)


12.刪除節(jié)點(diǎn)
delete /app1/bb
13.遞歸刪除節(jié)點(diǎn)
rmr /app2
14.查看節(jié)點(diǎn)狀態(tài)
stat /app1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市士复,隨后出現(xiàn)的幾起案子图谷,更是在濱河造成了極大的恐慌,老刑警劉巖阱洪,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜓萄,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡澄峰,警方通過(guò)查閱死者的電腦和手機(jī)嫉沽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俏竞,“玉大人绸硕,你說(shuō)我怎么就攤上這事堂竟。” “怎么了玻佩?”我有些...
    開(kāi)封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵出嘹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我咬崔,道長(zhǎng)税稼,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任垮斯,我火速辦了婚禮郎仆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘兜蠕。我一直安慰自己扰肌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布熊杨。 她就那樣靜靜地躺著曙旭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪晶府。 梳的紋絲不亂的頭發(fā)上桂躏,一...
    開(kāi)封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音川陆,去河邊找鬼沼头。 笑死,一個(gè)胖子當(dāng)著我的面吹牛书劝,可吹牛的內(nèi)容都是我干的进倍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼购对,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼猾昆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起骡苞,我...
    開(kāi)封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤垂蜗,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后解幽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體贴见,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年躲株,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了片部。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡霜定,死狀恐怖档悠,靈堂內(nèi)的尸體忽然破棺而出廊鸥,到底是詐尸還是另有隱情,我是刑警寧澤辖所,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布惰说,位于F島的核電站,受9級(jí)特大地震影響缘回,放射性物質(zhì)發(fā)生泄漏吆视。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一酥宴、第九天 我趴在偏房一處隱蔽的房頂上張望啦吧。 院中可真熱鬧,春花似錦幅虑、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至炫刷,卻和暖如春擎宝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背浑玛。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工绍申, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顾彰。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓极阅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親涨享。 傳聞我的和親對(duì)象是個(gè)殘疾皇子筋搏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容