更新時(shí)間:2021年05月19日16時(shí)22分 來(lái)源:傳智教育 瀏覽次數(shù):
$ zkServer.sh start
$ zkCli.sh -server localhost:2181
連接成功后,系統(tǒng)會(huì)輸出Zookeeper集群的相關(guān)配置信息,并在屏幕輸出“welcome to Zookeeper!”等信息。如圖1所示。
圖1 Zookeeper服務(wù)連接成功
從圖1可知,我們已經(jīng)成功連接到Zookeeper服務(wù)。接下來(lái),通過(guò)Shell命令操作Zookeeper。具體操作如下。
1.顯示所有操作命令
在客戶端輸入help,屏幕會(huì)輸出所有可用的Shell命令,如圖2所示。
圖2 help命令
2.查看當(dāng)前Zookeeper中所包含的內(nèi)容
在客戶端輸入ls /,屏幕會(huì)輸出Zookeeper中所包含的內(nèi)容,如圖3所示。
圖3 ls命令
小提示:
根目錄下有一個(gè)自帶的/zookeeper子節(jié)點(diǎn),它來(lái)保存Zookeeper的配額管理信息,不要輕易刪除。
3.查看當(dāng)前節(jié)點(diǎn)數(shù)據(jù)
在客戶端輸入ls2 /,屏幕會(huì)輸出當(dāng)前節(jié)點(diǎn)數(shù)據(jù)并且能看到更新次數(shù)等數(shù)據(jù),如圖4所示。
圖4 ls2命令
4.創(chuàng)建節(jié)點(diǎn)
在命令行輸入創(chuàng)建節(jié)點(diǎn)的命令,具體命令格式如下:
$ create [-s] [-e] path data acl
其中,-s表示是否開(kāi)啟節(jié)點(diǎn)的序列化特性,-e表示開(kāi)啟臨時(shí)節(jié)點(diǎn)特性,若不指定,則表示永久節(jié)點(diǎn);path表示創(chuàng)建的路徑,data表示創(chuàng)建節(jié)點(diǎn)的數(shù)據(jù),這是因?yàn)閆node可以像目錄一樣存在也可以像文件一樣保存數(shù)據(jù);acl用來(lái)進(jìn)行權(quán)限控制(一般不需要了解)。
創(chuàng)建序列化永久節(jié)點(diǎn):
$ create -s /testnode test
創(chuàng)建臨時(shí)節(jié)點(diǎn):
$ create -e /testnode-temp testtemp
創(chuàng)建永久節(jié)點(diǎn):
$ create /testnode-p testp
接下來(lái),我們以創(chuàng)建臨時(shí)節(jié)點(diǎn)為例進(jìn)行演示,屏幕輸出的效果,如圖5所示。
圖5 創(chuàng)建節(jié)點(diǎn)命令
5.獲取節(jié)點(diǎn)
在命令行輸入獲取節(jié)點(diǎn)的命令,具體命令格式如下:
$ ls path [watch]
$ get path [watch]
$ ls2 path [watch]
其中,ls和ls2命令在前面我們已經(jīng)進(jìn)行演示,現(xiàn)在演示get命令。get命令可以獲取Zookeeper指定節(jié)點(diǎn)的數(shù)據(jù)內(nèi)容和屬性信息。屏幕輸出的效果,如圖6所示。
圖6 get命令
6.修改節(jié)點(diǎn)
在命令行輸入修改節(jié)點(diǎn)的命令,具體命令格式如下:
$ set path data [version]
其中,data就是要修改的新內(nèi)容,version表示數(shù)據(jù)版本。接下來(lái),我們要對(duì)前面創(chuàng)建的臨時(shí)節(jié)點(diǎn)testnode-temp進(jìn)行修改操作。屏幕輸出的效果,如圖7所示。
圖7 set命令
從圖7可知,通過(guò)修改節(jié)點(diǎn)命令,將testnode-temp節(jié)點(diǎn)上的dataVersion版本變?yōu)?,并且再次查看節(jié)點(diǎn)信息,看到節(jié)點(diǎn)內(nèi)容也變成123。
7.監(jiān)聽(tīng)節(jié)點(diǎn)
監(jiān)聽(tīng)節(jié)點(diǎn)也就是監(jiān)聽(tīng)節(jié)點(diǎn)的變化,可以概括為三個(gè)過(guò)程??蛻舳讼蚍?wù)端注冊(cè)Watch、服務(wù)端事件發(fā)生觸發(fā)Watch、客戶端回調(diào)Watch得到觸發(fā)事件的情況。
首先,客戶端向服務(wù)端注冊(cè)Watch,在服務(wù)器hadoop01客戶端的命令行輸入命令,具體命令如下:
$ get /testnode-temp watch
其次,服務(wù)端發(fā)生事件觸發(fā)Watcher,在服務(wù)器hadoop02客戶端的命令行輸入命令,具體命令如下:
$ set /testnode-temp testwatch
最后,客戶端回調(diào)Watch得到觸發(fā)事件的情況。屏幕輸出的效果,如圖8所示。
圖8 監(jiān)聽(tīng)節(jié)點(diǎn)
8.刪除節(jié)點(diǎn)
在命令行輸入刪除節(jié)點(diǎn)的命令,具體命令格式如下:
普通刪除的命令
$ delete path [version]
遞歸刪除的命令
$ rmr path [version]
其中,使用delete命令刪除節(jié)點(diǎn)時(shí),若要?jiǎng)h除的節(jié)點(diǎn)存在子節(jié)點(diǎn),就無(wú)法刪除該節(jié)點(diǎn),必須先刪除子節(jié)點(diǎn),才可刪除父節(jié)點(diǎn);使用rmr命令遞歸刪除節(jié)點(diǎn),不論該節(jié)點(diǎn)下是否存在子節(jié)點(diǎn),可以直接刪除。delete刪除命令演示,對(duì)testnode-temp節(jié)點(diǎn)進(jìn)行刪除操作,屏幕輸出你的效果,如圖5-13所示。rmr遞歸刪除命令演示,對(duì)testnode-temp節(jié)點(diǎn)進(jìn)行刪除操作。屏幕輸出的效果,如圖9所示。
圖9 delete命令
從圖9可知,testnode-temp節(jié)點(diǎn)已經(jīng)被刪除。
圖10 rmr命令
從圖10可知,testnode-temp節(jié)點(diǎn)已經(jīng)被刪除。
猜你喜歡:怎樣使用Spark Shell來(lái)讀取HDFS文件?
Django的開(kāi)發(fā)理念:Django框架哲學(xué)
2021-05-13Django MTV架構(gòu)指的是什么?
2021-05-13怎樣解決瀏覽器下載Django項(xiàng)目大文件報(bào)錯(cuò)的問(wèn)題?
2021-05-13openstack有幾種節(jié)點(diǎn)?如何搭建openstack開(kāi)發(fā)環(huán)境?
2021-05-13如何優(yōu)化數(shù)據(jù)庫(kù)的查詢提高查詢效率?
2021-05-11什么是Zookeeper?Zookeeper有哪些特性?
2021-05-11北京校區(qū)