zookeeper基本操作

1.客戶端連接

[tx@test1 bin]$ jps
23433 Jps
23370 QuorumPeerMain    #zookeeper進程[tx@test1 bin]$ ./zkCli.sh -server test1:2182
Connecting to test1:2182
2018-01-24 23:42:09,024 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.5-1392090, built on [zk: test1:2182(CONNECTED) 0] ls /
[zookeeper]

2.help來查看客戶端的操作 

[zk: test1:2182(CONNECTED) 1] help
ZooKeeper -server host:port cmd argsconnect host:portget path [watch]ls path [watch]set path data [version]rmr pathdelquota [-n|-b] pathquit printwatches on|offcreate [-s] [-e] path data aclstat path [watch]close ls2 path [watch]history listquota pathsetAcl path aclgetAcl pathsync pathredo cmdnoaddauth scheme authdelete path [version]setquota -n|-b val path

3.創建節點

使用create命令,可以創建一個Zookeeper節點, 如

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

其中,-s或-e分別指定節點特性,順序或臨時節點,若不指定,則表示持久節點;acl用來進行權限控制。

① 創建順序節點

使用?create -s /zk-test 123?命令創建zk-test順序節點,節點的內容為123

[zk: test1:2182(CONNECTED) 3] ls /
[zk-test0000000000, zookeeper]

可以看到創建的zk-test節點后面添加了一串數字以示區別。

② 創建臨時節點

使用?create -e /zk-temp 123?命令創建zk-temp臨時節點

臨時節點在客戶端會話結束后,就會自動刪除,下面使用quit命令退出客戶端

再次使用客戶端連接服務端,并使用ls / 命令查看根目錄下的節點

可以看到根目錄下已經不存在zk-temp臨時節點了。

[zk: test1:2182(CONNECTED) 4] create -e /zk-temp 123
Created /zk-temp
[zk: test1:2182(CONNECTED) 5] ls /
[zk-temp, zk-test0000000000, zookeeper]

? [zk: test1:2182(CONNECTED) 0] ls /
? [zk-test0000000000, zookeeper]

③ 創建永久節點

使用?create /zk-permanent 123?命令創建zk-permanent永久節點 

[zk: test1:2182(CONNECTED) 1] create /zk-permanent 123
Created /zk-permanent
[zk: test1:2182(CONNECTED) 2] ls /
[zk-test0000000000, zk-permanent, zookeeper]

可以看到永久節點不同于順序節點,不會自動在后面添加一串數字。

  4. 讀取節點

? ? 與讀取相關的命令有ls 命令和get 命令,ls命令可以列出Zookeeper指定節點下的所有子節點,只能查看指定節點下的第一級的所有子節點;get命令可以獲取Zookeeper指定節點的數據內容和屬性信息。其用法分別如下

  ls path [watch]

  get path [watch]

  ls2 path [watch]

  若獲取根節點下面的所有子節點,使用ls /?命令即可 

[zk: test1:2182(CONNECTED) 2] ls /
[zk-test0000000000, zk-permanent, zookeeper]

若想獲取根節點數據內容和屬性信息,使用get /?命令即可 

[zk: test1:2182(CONNECTED) 3] get /cZxid = 0x0
ctime = Wed Dec 31 16:00:00 PST 1969
mZxid = 0x0
mtime = Wed Dec 31 16:00:00 PST 1969
pZxid = 0x400000008
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 3

也可以使用ls2 /?命令查看

[zk: test1:2182(CONNECTED) 4] ls2 /
[zk-test0000000000, zk-permanent, zookeeper]
cZxid = 0x0
ctime = Wed Dec 31 16:00:00 PST 1969
mZxid = 0x0
mtime = Wed Dec 31 16:00:00 PST 1969
pZxid = 0x400000008
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 3

可以看到其子節點數量為3

若想獲取/zk-permanent的數據內容和屬性,可使用如下命令:get /zk-permanent?

[zk: test1:2182(CONNECTED) 5] get /zk-permanent
123
cZxid = 0x400000008
ctime = Tue Jan 30 22:21:47 PST 2018
mZxid = 0x400000008
mtime = Tue Jan 30 22:21:47 PST 2018
pZxid = 0x400000008
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

可以看到其數據內容為123,還有其他的屬性,之后會詳細介紹。

5. 更新節點

使用set命令,可以更新指定節點的數據內容,用法如下

set path data [version]

其中,data就是要更新的新內容,version表示數據版本,如將/zk-permanent節點的數據更新為456,可以使用如下命令:set /zk-permanent 456 

[zk: test1:2182(CONNECTED) 6] set /zk-permanent 456
cZxid = 0x400000008
ctime = Tue Jan 30 22:21:47 PST 2018
mZxid = 0x400000009
mtime = Tue Jan 30 22:27:05 PST 2018
pZxid = 0x400000008
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

現在dataVersion已經變為1了,表示進行了更新。

5 刪除節點

使用delete命令可以刪除Zookeeper上的指定節點,用法如下

delete path [version]

其中version也是表示數據版本,使用delete /zk-permanent?命令即可刪除/zk-permanent節點 

[zk: test1:2182(CONNECTED) 8] delete /zk-permanent 
[zk: test1:2182(CONNECTED) 9] ls /
[zk-test0000000000, zookeeper]

可以看到,已經成功刪除/zk-permanent節點。值得注意的是,若刪除節點存在子節點,那么無法刪除該節點

?rmr path [version]??

刪除有子節點的節點

[zk: test1:2182(CONNECTED) 10] create /zk-permanent 123
Created /zk-permanent
[zk: test1:2182(CONNECTED) 11] create /zk-permanent/test 123
Created /zk-permanent/test
[zk: test1:2182(CONNECTED) 13] delete /zk-permanent         
Node not empty: /zk-permanent
[zk: test1:2182(CONNECTED) 14] rmr /zk-permanent
[zk: test1:2182(CONNECTED) 15] ls /
[zk-test0000000000, zookeeper]

?

轉載于:https://www.cnblogs.com/cornerxin/p/8351612.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539542.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539542.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539542.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sqllite java 密碼,SQLite登錄檢查用戶名和密碼

我正在創建一個應用程序(使用Java和SQLite)(JFrame,使用Netbeans)我有我想要登錄的用戶 . (我有所有正確的包JDBC,SQLite等)我遇到的問題似乎是獲取用戶名/密碼來檢查我的users.db文件..我正在使用Java和SQLite . 我也在使用JDBC .我的一些代碼作為一個例…

springmvc與struts2的區別

1)springmvc的入口是一個servlet,即前端控制器,例如:*.action struts2入口是一個filter過慮器,即前端過濾器,例如:/* 2)springmvc是基于方法開發,傳遞參數是通過方法形…

power designer數據流圖_鯤云公開課 | 三分鐘帶你了解數據流架構

目前,市場上的芯片主要包括指令集架構和數據流架構兩種實現方式。指令集架構主要包括X86架構、ARM架構、精簡指令集運算RISC-V開源架構,以及SIMD架構。總體來說,四者都屬于傳統的通用指令集架構。傳統的指令集架構采用馮諾依曼計算方式&#…

onCreate源碼分析

原文地址Android面試題-onCreate源碼都沒看過,怎好意思說自己做android Activity扮演了一個界面展示的角色,堪稱四大組件之首,onCreate是Activity的執行入口,都不知道入口到底干了嘛,還學什么android,所以本文會從源碼…

linux php環境搭建教程,linux php環境搭建教程

linux php環境搭建的方法:首先獲取相關安裝包;然后安裝Apache以及mysql;接著修改配置文件“httpd.conf”;最后設置環境變量和開機自啟,并編譯安裝PHP即可。一、獲取安裝包PHP下載地址:http://cn.php.net/di…

Apache2.2與Tomcat7集成方案詳解

原文地址:http://my.oschina.net/u/919173/blog/159206 ------------------------------------ 首先談一下為什么要集成Apache和tomcat7? Apache是當前使用最為廣泛的WWW服務器軟件,具有相當強大的靜態HTML處理的能力。 Tomcat服務器是一個…

cocos 制作動態生成內容的列表_零代碼工具,讓你在線輕松制作交互內容!

在工作中設計師不會寫代碼,懂代碼的不會設計,2種不同工作互掐的情況屢見不鮮,那我們如何把這2項工作一并融合貫通呢?對于不懂代碼的職場“小白”,我們可以利用一些零代碼工具來完成。今天小編介紹幾款在線開發設計工具…

php怎樣數據緩存文件,php數據緩存到文件類設計

// 自定義緩存類class Cache_Filesystem {// 緩存寫保存function set ($key, $data, $ttl) {//打開文件為讀/寫模式$h fopen($this->get_filename($key), ‘a‘);if (!$h) throw new Exception("Could not write to cache");flock($h, LOCK_EX); //寫鎖定&#x…

jsp放在web-inf下的注意事項

原文:http://blog.csdn.net/whatlookingfor/article/details/38381881 ------------------------------------------------- web-inf目錄是不對外開放的,外部沒辦法直接訪問到。所有只能通過映射來訪問,比如映射為一個action或者servlet通過…

php打印布爾型,PHP數據類型之布爾型的介紹_PHP

布爾類型是PHP中 最簡單的類型。它的值可以為 TRUE 或 FALSE。如:$foofalse;$foo1true;echo "為假時輸出值為:".$foo; //沒有輸出值echo "為真時輸出值為:".$foo1; //輸出1這里主要的細節:當轉換為 boolean 時,以下值被認…

oracle 如何終止存儲過程的運行

0.查詢正在執行的存儲過程: select * from v$db_object_cache where locks > 0 and pins > 0 and typePROCEDURE;1. 在V$ACCESS視圖中找到要停止進程的SID: 舉例:存儲過程名:CRH_ENTRY SELECT t.* FROM V$ACCESS t WHERE t.objectCRH_…

python install zabbix.4.0

1.安裝 MySQLdb 模塊; #!/bin/bash #this is rpm python Environment depends on function depends_rpm(){ yum clean all yum -y install gcc* python-devel python-pip mariadb mariadb-devel mariadb-server if [ $? -eq 0 ]thenpip install MySQL-python1.2.5 elsee…

asp.net 獲取全部在線用戶_Qamp;A | 在線考試問卷答疑

01.如何批量導入試題?如果您已經在word或者excel中準備好了考試文檔,通過批量導入試題的方式,可以讓考試問卷的制作更加方便快捷。詳細了解批量導入考試的文本格式:【點擊此處】02.如何進行考試隨機抽題?老師事先建立題…

PHP 框架 模塊化,Laravel 的模塊化開發框架 Notadd RC1

本文我們要和大家分享 Laravel 的模塊化開發框架 Notadd RC1 的介紹,它的優點是修復了首頁編輯模式下滾動的BUG (Eleven),修復了后臺菜單管理修改后不跳轉的BUG (ganlanshu0211),修復后臺 ESLint 的 Camelcase 的錯誤 (狒狒),暫時…

spring mvc 工作流程

1A)客戶端發出http請求,只要請求形式符合web.xml 文件中配置的*.action的話,就由DispatcherServlet 來處理。 1B)DispatcherServlet再將http請求委托給映射器 的對象來將http請求交給對應的Action來處理 2&#xff0…

9-2 鏈表

package gather;import java.util.LinkedList; import java.util.List; import java.util.ListIterator;public class TestFour {public static void main(String[] args) {// TODO Auto-generated method stub/*** 1、通過整數遍歷元素時,不要使用鏈表結構&#xf…

excel切片器_如何在Excel表格中使用切片器

切片器除了在數據透視表中會使用到,在Excel的表格功能下面,也是可以進行使用的。下面就來介紹一下如何使用切片器這個工具。創建和使用切片器1.首先就是要創建一個表格。選中目標區域,使用快捷鍵CtrlT,創建一個表格。2.點擊“插入…

分階段付款 學php,項目整理-支付寶的支付問題

支付寶作為一個被廣泛使用的支付工具,在是用的時候可以被廣泛使用。可以使用demo提取(由于當時開發時SDK下載路徑無法下載,直接從DEMO中篩選了需要部分)------------------我是開始開發思路的分割線--------------------------本次主要是APP支付的流程。…

使用sqlldr導入文本數據到oracle

1.sqlldr介紹 用法: SQLLDR keywordvalue [,keywordvalue,...]有效的關鍵字:userid -- ORACLE 用戶名/口令 control -- 控制文件名 log -- 日志文件名 bad -- 錯誤文件名 data -- 數據文件名 dis…