首頁技術文章正文

怎樣通過Shell命令操作Zookeeper?

更新時間:2021-05-19 來源:黑馬程序員 瀏覽量:

1577370495235_學IT就到黑馬程序員.gif

上面我們已經詳細介紹客戶端操作Zookeeper的常見命令。本節(jié),我們主要是通過Shell命令來操作Zookeeper。首先,啟動Zookeeper服務;其次,連接Zookeeper服務。具體命令如下:

$ zkServer.sh start

$ zkCli.sh -server localhost:2181
連接成功后,系統會輸出Zookeeper集群的相關配置信息,并在屏幕輸出“welcome to Zookeeper!”等信息。如圖1所示。

通過Shell命令操作Zookeeper

圖1 Zookeeper服務連接成功

從圖1可知,我們已經成功連接到Zookeeper服務。接下來,通過Shell命令操作Zookeeper。具體操作如下。

1.顯示所有操作命令

在客戶端輸入help,屏幕會輸出所有可用的Shell命令,如圖2所示。

通過Shell命令操作Zookeeper

圖2 help命令

2.查看當前Zookeeper中所包含的內容

在客戶端輸入ls /,屏幕會輸出Zookeeper中所包含的內容,如圖3所示。

通過Shell命令操作Zookeeper

圖3 ls命令

小提示:

根目錄下有一個自帶的/zookeeper子節(jié)點,它來保存Zookeeper的配額管理信息,不要輕易刪除。

3.查看當前節(jié)點數據

在客戶端輸入ls2 /,屏幕會輸出當前節(jié)點數據并且能看到更新次數等數據,如圖4所示。

通過Shell命令操作Zookeeper

圖4 ls2命令

4.創(chuàng)建節(jié)點

在命令行輸入創(chuàng)建節(jié)點的命令,具體命令格式如下:

$ create [-s] [-e] path data acl

其中,-s表示是否開啟節(jié)點的序列化特性,-e表示開啟臨時節(jié)點特性,若不指定,則表示永久節(jié)點;path表示創(chuàng)建的路徑,data表示創(chuàng)建節(jié)點的數據,這是因為Znode可以像目錄一樣存在也可以像文件一樣保存數據;acl用來進行權限控制(一般不需要了解)。

創(chuàng)建序列化永久節(jié)點:

$ create -s /testnode test

創(chuàng)建臨時節(jié)點:

$ create -e /testnode-temp testtemp

創(chuàng)建永久節(jié)點:

$ create /testnode-p testp

接下來,我們以創(chuàng)建臨時節(jié)點為例進行演示,屏幕輸出的效果,如圖5所示。

通過Shell命令操作Zookeeper

圖5 創(chuàng)建節(jié)點命令

5.獲取節(jié)點

在命令行輸入獲取節(jié)點的命令,具體命令格式如下:

$ ls path [watch]

$ get path [watch]

$ ls2 path [watch]

其中,ls和ls2命令在前面我們已經進行演示,現在演示get命令。get命令可以獲取Zookeeper指定節(jié)點的數據內容和屬性信息。屏幕輸出的效果,如圖6所示。

通過Shell命令操作Zookeeper

圖6 get命令

6.修改節(jié)點

在命令行輸入修改節(jié)點的命令,具體命令格式如下:

$ set path data [version]

其中,data就是要修改的新內容,version表示數據版本。接下來,我們要對前面創(chuàng)建的臨時節(jié)點testnode-temp進行修改操作。屏幕輸出的效果,如圖7所示。

通過Shell命令操作Zookeeper

圖7 set命令

從圖7可知,通過修改節(jié)點命令,將testnode-temp節(jié)點上的dataVersion版本變?yōu)?,并且再次查看節(jié)點信息,看到節(jié)點內容也變成123。

7.監(jiān)聽節(jié)點

監(jiān)聽節(jié)點也就是監(jiān)聽節(jié)點的變化,可以概括為三個過程??蛻舳讼蚍斩俗訵atch、服務端事件發(fā)生觸發(fā)Watch、客戶端回調Watch得到觸發(fā)事件的情況。

首先,客戶端向服務端注冊Watch,在服務器hadoop01客戶端的命令行輸入命令,具體命令如下:

$ get /testnode-temp watch

其次,服務端發(fā)生事件觸發(fā)Watcher,在服務器hadoop02客戶端的命令行輸入命令,具體命令如下:

$ set /testnode-temp testwatch

最后,客戶端回調Watch得到觸發(fā)事件的情況。屏幕輸出的效果,如圖8所示。

通過Shell命令操作Zookeeper

圖8 監(jiān)聽節(jié)點

8.刪除節(jié)點

在命令行輸入刪除節(jié)點的命令,具體命令格式如下:

普通刪除的命令

$ delete path [version]

遞歸刪除的命令

$ rmr path [version]

其中,使用delete命令刪除節(jié)點時,若要刪除的節(jié)點存在子節(jié)點,就無法刪除該節(jié)點,必須先刪除子節(jié)點,才可刪除父節(jié)點;使用rmr命令遞歸刪除節(jié)點,不論該節(jié)點下是否存在子節(jié)點,可以直接刪除。delete刪除命令演示,對testnode-temp節(jié)點進行刪除操作,屏幕輸出你的效果,如圖5-13所示。rmr遞歸刪除命令演示,對testnode-temp節(jié)點進行刪除操作。屏幕輸出的效果,如圖9所示。

通過Shell命令操作Zookeeper

圖9 delete命令

從圖9可知,testnode-temp節(jié)點已經被刪除。

通過Shell命令操作Zookeeper

圖10 rmr命令

從圖10可知,testnode-temp節(jié)點已經被刪除。






猜你喜歡:

Spark Shell讀取HDFS文件的步驟有哪些?

shell腳本編輯教程下載【黑馬程序員】

什么是HDFS Shell?HDFS常用命令操作方法

黑馬程序員Python+大數據開發(fā)培訓

分享到:
在線咨詢 我要報名
和我們在線交談!