1. 程式人生 > >ZooKeeper客戶端 zkCli.sh 節點的增刪改查

ZooKeeper客戶端 zkCli.sh 節點的增刪改查

  • zkCli.sh

在 bin 目錄下的  zkCli.sh  就是ZooKeeper客戶端

./zkCli.sh -timeout 5000  -server 127.0.0.1:2181   客戶端與ZooKeeper建立連結

timeout:超時時間,單位毫秒

r:只讀模式,當節點壞掉的時候,還可以提供讀服務

示例:

./zkCli.sh -timeout 5000 -server 127.0.0.1:2181

 1 zhangliuningdeMacBook-Pro:bin sherry$ ./zkCli.sh -timeout 5000 -server 127.0.0.1:2181
 2 Connecting to 127.0
.0.1:2181 3 2016-08-27 15:07:04,036 [myid:] - INFO [main:[email protected]100] - Client environment:zookeeper.version=3.4.8--1, built on 02/06/2016 03:18 GMT 4 2016-08-27 15:07:04,039 [myid:] - INFO [main:[email protected]100] - Client environment:host.name=192.168.0.105 5 2016-08-27 15:07:04,039 [myid:] - INFO [main:
[email protected]
100] - Client environment:java.version=1.8.0_71 6 2016-08-27 15:07:04,041 [myid:] - INFO [main:[email protected]100] - Client environment:java.vendor=Oracle Corporation 7 2016-08-27 15:07:04,041 [myid:] - INFO [main:[email protected]100] - Client environment:java.home=/Library/Java/JavaVirtualMachines/jdk1.8
.0_71.jdk/Contents/Home/jre 8 2016-08-27 15:07:04,042 [myid:] - INFO [main:[email protected]100] - Client environment:java.class.path=/Users/sherry/Applications/zk1/bin/../build/classes:/Users/sherry/Applications/zk1/bin/../build/lib/*.jar:/Users/sherry/Applications/zk1/bin/../lib/slf4j-log4j12-1.6.1.jar:/Users/sherry/Applications/zk1/bin/../lib/slf4j-api-1.6.1.jar:/Users/sherry/Applications/zk1/bin/../lib/netty-3.7.0.Final.jar:/Users/sherry/Applications/zk1/bin/../lib/log4j-1.2.16.jar:/Users/sherry/Applications/zk1/bin/../lib/jline-0.9.94.jar:/Users/sherry/Applications/zk1/bin/../zookeeper-3.4.8.jar:/Users/sherry/Applications/zk1/bin/../src/java/lib/*.jar:/Users/sherry/Applications/zk1/bin/../conf: 9 2016-08-27 15:07:04,042 [myid:] - INFO [main:[email protected]] - Client environment:java.library.path=/Users/sherry/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. 10 2016-08-27 15:07:04,042 [myid:] - INFO [main:[email protected]] - Client environment:java.io.tmpdir=/var/folders/_n/d05bph5x5bl6k5p0pkx2g66m0000gn/T/ 11 2016-08-27 15:07:04,042 [myid:] - INFO [main:[email protected]] - Client environment:java.compiler=<NA> 12 2016-08-27 15:07:04,042 [myid:] - INFO [main:[email protected]] - Client environment:os.name=Mac OS X 13 2016-08-27 15:07:04,042 [myid:] - INFO [main:[email protected]] - Client environment:os.arch=x86_64 14 2016-08-27 15:07:04,042 [myid:] - INFO [main:[email protected]] - Client environment:os.version=10.11.5 15 2016-08-27 15:07:04,043 [myid:] - INFO [main:[email protected]] - Client environment:user.name=sherry 16 2016-08-27 15:07:04,043 [myid:] - INFO [main:[email protected]] - Client environment:user.home=/Users/sherry 17 2016-08-27 15:07:04,043 [myid:] - INFO [main:[email protected]] - Client environment:user.dir=/Users/sherry/Applications/zk1/bin 18 2016-08-27 15:07:04,044 [myid:] - INFO [main:[email protected]] - Initiating client connection, connectString=127.0.0.1:2181 sessionTimeout=5000 [email protected] 19 Welcome to ZooKeeper! 20 2016-08-27 15:07:04,081 [myid:] - INFO [main-SendThread(127.0.0.1:2181):[email protected]] - Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) 21 JLine support is enabled 22 2016-08-27 15:07:04,187 [myid:] - INFO [main-SendThread(127.0.0.1:2181):[email protected]] - Socket connection established to 127.0.0.1/127.0.0.1:2181, initiating session 23 [zk: 127.0.0.1:2181(CONNECTING) 0] 2016-08-27 15:07:04,245 [myid:] - INFO [main-SendThread(127.0.0.1:2181):[email protected]] - Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x156cacb918b0000, negotiated timeout = 5000 24 25 WATCHER:: 26 27 WatchedEvent state:SyncConnected type:None path:null

如上,表示我們和ZooKeeper建立了連線,可以通過命令與ZooKeeper進行互動了

h:幫助列表

h
ZooKeeper -server host:port cmd args
    stat path [watch]
    set path data [version]
    ls path [watch]
    delquota [-n|-b] path
    ls2 path [watch]
    setAcl path acl
    setquota -n|-b val path
    history 
    redo cmdno
    printwatches on|off
    delete path [version]
    sync path
    listquota path
    rmr path
    get path [watch]
    create [-s] [-e] path data acl
    addauth scheme auth
    quit 
    getAcl path
    close 
    connect host:port

顯示能夠執行的命令

命令分類和資料庫相似,大概可以分為增刪改查四類

ZooKeeper資料結構:

大多數時候,我們隊ZooKeeper的操作都是在對節點進行增刪改查

常用命令:

查詢相關指令

ls path:列出path下的檔案

[zk: 127.0.0.1:2181(CONNECTED) 4] ls /
[zookeeper]

如上:列出根目錄節點下的所有檔案,目前就只有一個系統自帶的zookeeper節點

stat path:檢視節點狀態

[zk: 127.0.0.1:2181(CONNECTED) 6] stat /zookeeper
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
cZxid:建立節點時的事務id
pZxid:子節點列表最後一次被修改的事務id
cversion:節點版本號
dataCersion:資料版本號
aclVerson:acl許可權版本號

......

get path:獲取指定節點的內容

ls2 path:列出path節點的子節點及狀態資訊


建立指令

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

1 [zk: 127.0.0.1:2181(CONNECTED) 10] create /node_1 123
2 Created /node_1

如上:在根目錄建立了node_1節點,攜帶資料 123

使用 get /node_1 驗證是否新增節點及其資料成功

[zk: 127.0.0.1:2181(CONNECTED) 15] create -e /node_1/node_1_1 234
Created /node_1/node_1_1

建立了一個臨時節點(-e),並且攜帶資料234,使用stat命令檢視這個新建的臨時節點

[zk: 127.0.0.1:2181(CONNECTED) 16] stat /node_1/node_1_1
cZxid = 0x200000003
ctime = Sat Aug 27 15:27:30 CST 2016
mZxid = 0x200000003
mtime = Sat Aug 27 15:27:30 CST 2016
pZxid = 0x200000003
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x156cacb918b0000
dataLength = 3
numChildren = 0
ephemeralOwner值不再是0,表示這個臨時節點的版本號,如果是永久節點則其值為 0x0
1 [zk: 127.0.0.1:2181(CONNECTED) 1] create -s /node_1/node_1_1 234
2 Created /node_1/node_1_10000000001

通過使用-s引數,建立一個順序節點,我們雖然指定的節點名是node_1_1,但是實際上,名稱卻是 node_1_10000000001,如果我們重複執行:

[zk: 127.0.0.1:2181(CONNECTED) 2] create -s /node_1/node_1_1 234
Created /node_1/node_1_10000000002

效果如上

這個特性,我們可以利用一下,生成在分散式環境下的主鍵生成器

-s 和 -e 可以同時使用



退出:
quit
[zk: 127.0.0.1:2181(CONNECTED) 19] quit
Quitting...
2016-08-27 15:29:44,760 [myid:] - INFO  [main:[email protected]684] - Session: 0x156cacb918b0000 closed
2016-08-27 15:29:44,763 [myid:] - INFO  [main-EventThread:[email protected]519] - EventThread shut down for session: 0x156cacb918b0000

這個時候如果重新登入,執行 ls /node_1,發現其子節點是空的,建立的node_1_1子節點不見了,那是因為之前建立的時候就已經指定了,我們建立的是一個臨時節點。當客戶端會話結束後,臨時節點是會被刪除了。

修改相關指定:

set path data [version]

[zk: 127.0.0.1:2181(CONNECTED) 14] set /node_1 998
cZxid = 0x200000002
ctime = Sat Aug 27 15:24:39 CST 2016
mZxid = 0x20000000a
mtime = Sat Aug 27 15:38:40 CST 2016
pZxid = 0x200000008
cversion = 5
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 3

如果我們多次修改,會發現  dataVersion ,也就是資料版本,在不停得發生變化(自增)

如果我們在set的時候手動去指定了版本號,就必須和上一次查詢出來的結果一致,否則 就會報錯。

這個可以用於我們在修改節點資料的時候,保證我們修改前資料沒被別人修改過。因為如果別人修改過了,我們這次修改是不會成功的

刪除指令:

delete path [version]

刪除指定節點資料,其version引數的作用於set指定一致

delete /node_1/node_1_10000000001

整個節點全刪除

注意:delete只能刪除不包含子節點的節點,如果要刪除的節點包含子節點,使用rmr命令

rmr /node_1

相關推薦

ZooKeeper客戶 zkCli.sh 節點刪改

zkCli.sh 在 bin 目錄下的  zkCli.sh  就是ZooKeeper客戶端 ./zkCli.sh -timeout 5000  -server 127.0.0.1:2181   客戶端與ZooKeeper建立連結 timeout:超時時間,單位毫秒 r:只讀模式,當節點壞掉的時

Zookeeper客戶zkCli.sh使用

原文連結:http://blog.csdn.net/xyang81/article/details/53053642 在學習zookeeper(下面簡稱zk)客戶端之前,有必要先了解一下zk的資料模型。zk維護著一個邏輯上的樹形層次結構,樹中的節點稱為znode,和Linu

分散式服務管理框架-Zookeeper客戶zkCli.sh使用詳解

在學習zookeeper(下面簡稱zk)客戶端之前,有必要先了解一下zk的資料模型。zk維護著一個邏輯上的樹形層次結構,樹中的節點稱為znode,和Linux系統的檔案系統結構非常相似,如下圖所示: 這種資料結構有如下特點: 1> 每個znod

分散式服務管理框架-Zookeeper客戶zkCli.shzkCli.cmd使用詳解(轉載)

在學習zookeeper(下面簡稱zk)客戶端之前,有必要先了解一下zk的資料模型。zk維護著一個邏輯上的樹形層次結構,樹中的節點稱為znode,和Linux系統的檔案系統結構非常相似,如下圖所示: 這種資料結構有如下特點: 每個znode都有唯

zookeeper客戶zkCli.sh常用命令

怎樣執行客戶端命令 登入客戶端 [root@localhost ~]# cd /usr/local/zookeeper-3.4.9/bin/ [root@localhost bin]# ./zk

利用Ajax對客戶頁面的動態刪改

前兩天在做一個網站的後臺,我做成員管理一塊,發現我負責的這一塊有很大的發揮空間,在web2.0時代客戶的體驗已經被提為最重要的議程,因此網頁的流暢度將是網頁能夠給人帶來快捷體驗的一個有效途徑,利用Ajax實現對資料的增刪改查,效果很好.... 在客戶端指令碼在winload時

html dom節點刪改

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <s

JS DOM節點刪改 屬性設置

contain 百度首頁 fun classname dhtml -- 使用 dom val 一.節點操作 增 createElement(name)創建元素 appendChild();將元素添加 刪 獲得要刪除的元素 獲得它的父

Zookeeper詳解(四):Zookeeper中的zkCli.sh客戶使用

zkCli.sh zookeeper客戶端 最好配置上環境變量連接操作:zkCli.sh -timeout 1000 -r -server 127.0.0.1 # -timeout 設置客戶端和服務器之間的超時時長,單位毫秒 # -r 只讀模式,不加就是讀寫模式 # -server IP:PORT 要

Zookeeper JavaAPI對節點進行刪改(詳細步驟)

import java.io.IOException; import java.util.List; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; import org.ap

HBase刪改客戶

需要講解的內容基本都寫在程式碼裡了,直接貼程式碼 import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.hadoop.conf.Configu

Springboot2(29)整合zookeeper刪改節點監聽、分散式讀寫鎖、分散式計數器

原始碼地址 springboot2教程系列 實現zookeeper節點的增刪改查、節點監聽、分散式讀寫鎖、分散式計數器 新增依賴 <properties> <project.build.sourceEncoding

淘淘商城23_在Linux上的操作_solrJ客戶_02刪改

一、dao層的編寫SearchItemDao.java package com.taotao.search.dao; import java.util.List; import org.apache.solr.client.solrj.SolrQuery; import com.ta

Zookeeper客戶API之讀取子節點列表(八)

本篇部落格介紹一下Zookeeper原生客戶端API提供的獲取子節點列表方法。 獲取子節點列表方法 方法 Zookeeper原生客戶端API提供了以下8中獲取子節點列表的方法,每個方法的使用說明參考註釋內容: /** * 返回指定路徑下面的子節點列

ZooKeeper節點刪改

ZooKeeper資料結構:            查詢指令:    ls path:列出path下的檔案[zk: 127.0.0.1:2181(CONNECTED) 4] ls / [zookeeper]    如上:列出根目錄節點下的所有檔案,目前就只有一個系統自帶的zo

Zookeeper客戶API之修改刪除節點(十)

上篇部落格《Zookeeper客戶端API之讀取子節點內容(九)》我們介紹了Zookeeper獲得節點內容的方法使用,其中例項程式碼中已經用到了修改節點內容的方法。因此,本篇部落格只介紹修改和刪除功能A

Zookeeper客戶基本操作java實現——建立連線、建立節點、新增修改節點內容、獲取子節點、獲取節點資料、刪除節點

一、引入Zookeeper包,新增pom依賴 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper<

企業級搜尋應用伺服器Solr4.10.4部署開發詳解(3)- Solr使用-使用java客戶solrj進行刪改開發

(一)使用java客戶端solrj進行增刪改查開發         前兩章講的是如何搭建部署Solr環境和使用Solr建立資料集合進行儲存查詢,下面我們需要更進一步,直接使用客戶端API進行開發,直接操作資料集合,進行增刪改查。 1. 加入客戶端API的jar包 使用客戶端

Zookeeper客戶API之讀取子節點內容(九)

本篇部落格介紹一下Zookeeper原聲API讀取節點內容的使用方法。 讀取節點內容方法介紹 方法 Zookeeper提供了兩個方法來獲取節點內容,同步獲取和非同步獲取: public byte[] getData(String path,

zookeeper客戶使用原生JavaApi操作節點

開發 vat closed 路徑 就是 list disco override () 1.引入依賴 <dependency> <groupId>org.apache.zookeeper</groupId>