【轉】ZooKeeper學習第二期--Zookeeper命令操作

来源:http://www.cnblogs.com/wangyayun/archive/2017/05/08/6824699.html
-Advertisement-
Play Games

一、Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母與其的交互。他們大多數是查詢命令,用來獲取Zookeeper服務的當前狀態及相關信息。用戶在客戶端可以通過telnet或nc向Zookeeper提交相應的命令。Zookeeper常用的四字命令見下圖所示。 上圖,是Zook ...


一、Zookeeper的四字命令

Zookeeper支持某些特定的四字命令字母與其的交互。他們大多數是查詢命令,用來獲取Zookeeper服務的當前狀態及相關信息。用戶在客戶端可以通過telnet或nc向Zookeeper提交相應的命令。Zookeeper常用的四字命令見下圖所示。

上圖,是Zookeeper四字命令的一個簡單用例。

[root@hadoop ~]# echo ruok|nc localhost 2181
[root@hadoop ~]# zkServer.sh start zoo1.cfg
JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo1.cfg
Starting zookeeper ... STARTED
[root@hadoop ~]#  zkServer.sh start zoo2.cfg
JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo2.cfg
Starting zookeeper ... STARTED
[root@hadoop ~]#  zkServer.sh start zoo3.cfg
JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo3.cfg
Starting zookeeper ... STARTED
[root@hadoop ~]# echo ruok|nc localhost 2181
imok[root@hadoop ~]# echo ruok|nc localhost 2182
imok[root@hadoop ~]# echo ruok|nc localhost 2183
imok[root@hadoop ~]# echo conf|nc localhost 2181
clientPort=2181
dataDir=/usr/local/zk/data_1/version-2
dataLogDir=/usr/local/zk/logs_1/version-2
tickTime=2000
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=0
initLimit=10
syncLimit=5
electionAlg=3
electionPort=3387
quorumPort=2287
peerType=0
[root@hadoop ~]#

二、Zookeeper的簡單操作

2.1  Zookeeper的shell操作

2.1.1 Zookeeper命令工具

再啟動Zookeeper服務之後,輸入以下命令,連接到Zookeeper服務:

    zkCli.sh -server localhost:2181

執行結果如下所示:

[root@hadoop ~]# zkCli.sh -server localhost:2181
Connecting to localhost:2181
2014-10-17 03:35:51,051 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
2014-10-17 03:35:51,055 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=hadoop
2014-10-17 03:35:51,057 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.6.0_24
2014-10-17 03:35:51,057 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Sun Microsystems Inc.
2014-10-17 03:35:51,066 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/local/jdk/jre
2014-10-17 03:35:51,079 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/usr/local/zk/bin/../build/classes:/usr/local/zk/bin/../build/lib/*.jar:/usr/local/zk/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/zk/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zk/bin/../lib/netty-3.2.2.Final.jar:/usr/local/zk/bin/../lib/log4j-1.2.15.jar:/usr/local/zk/bin/../lib/jline-0.9.94.jar:/usr/local/zk/bin/../zookeeper-3.4.5.jar:/usr/local/zk/bin/../src/java/lib/*.jar:/usr/local/zk/bin/../conf:
2014-10-17 03:35:51,083 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/local/jdk/jre/lib/i386/client:/usr/local/jdk/jre/lib/i386:/usr/local/jdk/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib
2014-10-17 03:35:51,084 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2014-10-17 03:35:51,086 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2014-10-17 03:35:51,099 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2014-10-17 03:35:51,100 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=i386
2014-10-17 03:35:51,101 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.32-358.el6.i686
2014-10-17 03:35:51,101 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2014-10-17 03:35:51,102 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2014-10-17 03:35:51,106 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/root
2014-10-17 03:35:51,120 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@b02e7a
Welcome to ZooKeeper!
JLine support is enabled
2014-10-17 03:35:51,233 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@966] - Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (Unable to locate a login configuration)
2014-10-17 03:35:51,247 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@849] - Socket connection established to localhost/127.0.0.1:2181, initiating session
[zk: localhost:2181(CONNECTING) 0] 2014-10-17 03:35:51,290 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1207] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x491da0e20b0000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

[zk: localhost:2181(CONNECTED) 0]

連接成功之後,系統會輸出Zookeeper的相關環境及配置信息,併在屏幕輸出“welcome to Zookeeper!”等信息。輸入help之後,屏幕會輸出可用的Zookeeper命令,如下圖所示

2.1.2 使用Zookeeper命令的簡單操作步驟

(1) 使用ls命令查看當前Zookeeper中所包含的內容:ls /

[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 2]

(2) 創建一個新的Znode節點"zk",以及和它相關字元,執行命令:create /zk myData

[zk: localhost:2181(CONNECTED) 2] create /zk myData
Created /zk

(3) 再次使用ls命令來查看現在Zookeeper的中所包含的內容:ls /

[zk: localhost:2181(CONNECTED) 3] ls /
[zk, zookeeper]

此時看到,zk節點已經被創建。  

(4) 使用get命令來確認第二步中所創建的Znode是否包含我們創建的字元串,執行命令:get /zk

[zk: localhost:2181(CONNECTED) 4] get /zk
myData
cZxid = 0x500000006
ctime = Fri Oct 17 03:54:20 PDT 2014
mZxid = 0x500000006
mtime = Fri Oct 17 03:54:20 PDT 2014
pZxid = 0x500000006
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0

(5) 接下來通過set命令來對zk所關聯的字元串進行設置,執行命令:set /zk jiang1234

[zk: localhost:2181(CONNECTED) 5] set /zk jiang2014
cZxid = 0x500000006
ctime = Fri Oct 17 03:54:20 PDT 2014
mZxid = 0x500000007
mtime = Fri Oct 17 03:55:50 PDT 2014
pZxid = 0x500000006
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 9
numChildren = 0

(6) 再次使用get命令來查看,上次修改的內容,執行命令:get /zk

[zk: localhost:2181(CONNECTED) 6] get /zk
jiang2014
cZxid = 0x500000006
ctime = Fri Oct 17 03:54:20 PDT 2014
mZxid = 0x500000007
mtime = Fri Oct 17 03:55:50 PDT 2014
pZxid = 0x500000006
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 9
numChildren = 0

(7) 下麵我們將剛纔創建的Znode刪除,執行命令:delete /zk

[zk: localhost:2181(CONNECTED) 7] delete /zk

(8) 最後再次使用ls命令查看Zookeeper中的內容,執行命令:ls /

[zk: localhost:2181(CONNECTED) 8] ls /
[zookeeper]

 

經過驗證,zk節點已經刪除。

2.2 Zookeeper的api的簡單使用

2.2.1 ZookeeperAPI簡介

Zookeeper API共包含五個包,分別為:

  (1)org.apache.zookeeper
  (2)org.apache.zookeeper.data
  (3)org.apache.zookeeper.server
  (4)org.apache.zookeeper.server.quorum
  (5)org.apache.zookeeper.server.upgrade

其中org.apache.zookeeper,包含Zookeeper類,他是我們編程時 最常用的類文件。這個類是Zookeeper客戶端的主要類文件。如果要使用Zookeeper服務,應用程式首先必須創建一個Zookeeper實例, 這時就需要使用此類。一旦客戶端和Zookeeper服務建立起了連接,Zookeeper系統將會給次連接會話分配一個ID值,並且客戶端將會周期性的 向伺服器端發送心跳來維持會話連接。只要連接有效,客戶端就可以使用Zookeeper API來做相應處理了。

Zookeeper類提供瞭如下圖所示的幾類主要方法

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ASP.NET Zero--開髮指南(Lyhcee 譯) 01. 前期介紹 02. 前期要求 03. 解決方案結構(層) 04. 前端應用程式 05. 後端應用程式 06.WEB.HOST應用程式 07.Migration控制台應用程式 08. 基礎設施 09. 基於令牌的認證&SWAGGER UI ...
  • 一、前言 我心中的插件系統應該是像Nop那樣(更牛逼的如Orchard,OSGI.NET),每個插件模塊不只是一堆實現了某個業務介面的dll,然後採用反射或IOC技術來調用,而是一個完整的mvc小應用,我可以在後臺控制插件的安裝和禁用,目錄結構如下: 生成後放在站點根目錄下的Plugins文件夾中, ...
  • 今天分享一個 WPF 版的ColorDialog,該控制項源自 這裡,不過筆者已經該控制項做了大量的修改工作,以適應自己的產品需求,閑話少說,先看看效果圖: 1、DropDownCustomColorPicker 效果圖 先看原項目的(喜歡這種方式的,請到 這裡 下載源碼 ) 被筆者修改之後的效果圖: ...
  • 之前瞭解過索引器,當時還把索引器和屬性給記混了, 以為索引器就是屬性,下麵寫下索引器和屬性的區別,以及怎麼使用索引器 先說明一點,這裡的索引器和資料庫中的索引不一樣,雖然都是找元素。 索引器和屬性的區別: 屬性是以名稱來標識,而索引器是以函數的形式來標識(但是索引器不能完全理解為函數); 索引器可以... ...
  • 0. Cake是什麼? Cake是C# Make的縮寫,是一個基於C# DSL的自動化構建系統。它可以用來編譯代碼,複製文件以及文件夾,運行單元測試,壓縮文件以及構建Nuget包等等。 熟悉大名鼎鼎的Make的小伙伴,應該已經知道Cake大致是個什麼樣的工具了,Cake具有以下幾個特點: 1. 一個 ...
  • 在java中沒有這樣的東西,一個類一旦是 final的 ,這個類就不能再被添加方法, 但是C#能夠做到,可以給 sealed 類添加新的方法,這點我還是比較喜歡c#的。 這就是C#中的擴展方法。 那麼什麼情況下我們才需要去給一個類寫擴展方法呢? 系統自帶的類型,我們無法去修改; 修改源代碼需要較大的... ...
  • 前段時間做了一個練手的小項目,名叫Book_Bar,用來賣書的,採用的是三層架構,也就是Models,IDAL,DAL,BLL 和 Web , 在DAL層中各個類中有一個方法比較常用,那就是 RowToClass ,顧名思義,也就是將 DataTable 中的數據封裝到 Models 中。結果導致在... ...
  • 如下函數 char (*retCharWithInt(char, char))(int); 申明瞭函數指針retCharWithInt,該指針指向一個形參是(char,char),返回值是char(*)(int)的函數。 若是定義 char (*retCharWithInt(char c1, cha ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...