Zookeeper客戶端基本操作java實現——建立連線、建立節點、新增修改節點內容、獲取子節點、獲取節點資料、刪除節點
一、引入Zookeeper包,新增pom依賴
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.3.6</version>
</dependency>
二、基本操作實現類
package com.xgd.log.common; import java.util.List; import java.util.concurrent.CountDownLatch; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.Watcher.Event.KeeperState; import org.apache.zookeeper.ZooDefs.Ids; import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.data.Stat; public class BaseZookeeper implements Watcher{ private ZooKeeper zookeeper; private static final int SESSION_TIME_OUT = 2000; private CountDownLatch countDownLatch = new CountDownLatch(1); @Override public void process(WatchedEvent event) { if (event.getState() == KeeperState.SyncConnected) { System.out.println("Watch received event"); countDownLatch.countDown(); } } /**連線zookeeper * @param host * @throws Exception */ public void connectZookeeper(String host) throws Exception{ zookeeper = new ZooKeeper(host, SESSION_TIME_OUT, this); countDownLatch.await(); System.out.println("zookeeper connection success"); } /** * 建立節點 * @param path * @param data * @throws Exception */ public String createNode(String path,String data) throws Exception{ return this.zookeeper.create(path, data.getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); } /** * 獲取路徑下所有子節點 * @param path * @return * @throws KeeperException * @throws InterruptedException */ public List<String> getChildren(String path) throws KeeperException, InterruptedException{ List<String> children = zookeeper.getChildren(path, false); return children; } /** * 獲取節點上面的資料 * @param path * @return * @throws KeeperException * @throws InterruptedException */ public String getData(String path) throws KeeperException, InterruptedException{ byte[] data = zookeeper.getData(path, false, null); if (data == null) { return ""; } return new String(data); } /** * 設定節點資訊 * @param path * @param data * @return * @throws KeeperException * @throws InterruptedException */ public Stat setData(String path,String data) throws KeeperException, InterruptedException{ Stat stat = zookeeper.setData(path, data.getBytes(), -1); return stat; } /** * 刪除節點 * @param path * @throws InterruptedException * @throws KeeperException */ public void deleteNode(String path) throws InterruptedException, KeeperException{ zookeeper.delete(path, -1); } /** * 獲取建立時間 * @param path * @return * @throws KeeperException * @throws InterruptedException */ public String getCTime(String path) throws KeeperException, InterruptedException{ Stat stat = zookeeper.exists(path, false); return DateUtil.longToString(String.valueOf(stat.getCtime())); } /** * 獲取某個路徑下孩子的數量 * @param path * @return * @throws KeeperException * @throws InterruptedException */ public Integer getChildrenNum(String path) throws KeeperException, InterruptedException{ int childenNum = zookeeper.getChildren(path, false).size(); return childenNum; } /** * 關閉連線 * @throws InterruptedException */ public void closeConnection() throws InterruptedException{ if (zookeeper != null) { zookeeper.close(); } } }
相關推薦
Zookeeper客戶端基本操作java實現——建立連線、建立節點、新增修改節點內容、獲取子節點、獲取節點資料、刪除節點
一、引入Zookeeper包,新增pom依賴 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper<
2018-07-13期 Zookeeper客戶端基本操作【本人親自反復驗證通過分享】
RoCE 分享 自動刪除 ast state println await roc 可用 說明:本文檔主要給大家介紹ZK客戶端API基本操作一、新建Java工程1、New->Project->Java Project填寫JAVA工程名字,選擇JDK版本等2、為新建
Hdfs的JAVA客戶端基本操作
一:需要的jar包: hadoop-2.4.1\share\hadoop\hdfs\hadoop-hdfs-2.4.1.jar hadoop-2.4.1\share\hadoop\hdfs\lib\所有jar包 hadoop-2.4.1\share\hadoop\commo
Redis客戶端基本操作以及檢視慢查詢
1.連線 redis-cli.exe -h 127.0.0.1 -p 6379 2.驗證密碼 λ redis-cli.exe -h 127.0.0.1 -p 6379127.0.0.1:6379> auth 密碼 3. redis key值獲取
zookeeper客戶端api操作
這裡記錄zookeeper java客戶端api的使用。 客戶端建立Zookeeper例項,然後呼叫這個類提供的方法與zookeeper伺服器進行互動。 Zookeeper的建構函式有如下4種: ZooKeeper(connectString, sessionT
【分散式】Zookeeper客戶端基本的使用
與mysql、redis等軟體一樣,zookeeper的軟體包中也提供了客戶端程式用於對伺服器上的資料進行操作。本節我們就來學習zookeeper客戶端的使用方法。不過在詳細講解zk客戶端的使用方法之前,我們會先來討論zookeeper的資料儲存結構,只有理解了zookeeper的資料儲存結構,才會真正明
單鏈表基本操作java實現
單鏈表基本操作 - java實現 1.單鏈表學習了好久,今天終於有時間寫一下了,帶頭結點的單鏈表上的基本操作,Java實現。 (1) 先來個介面 public interface IList { public void clear(); //清空連結串列 publi
二叉樹的基本操作——java實現
樹 的資料結構 public class TreeNode { private int data; private TreeNode LeftNode; private TreeNode RightNode; public TreeNode() {
zookeeper客戶端SHELL操作命令
使用zookeeper安裝bin目錄下的./zkCli.sh連線到zookeeper伺服器上 使用h或者help檢視幫助: stat 命令: 檢視節點的狀態資訊 set命令: 修改節點資料,可攜帶
zookeeper客戶端操作及JAVA程式碼操作CURD
總結:zookeeper相當於一個遠端平臺,我們可以將資料放在上面,他是一個樹形結構,每一個節點稱為一個Znode 資料模型:每個節點或稱為目錄,都可以存放資料並且存放節點,有雙重功能 重點watch機制: ZooKeeper 中,引入了 Watcher 機制來實現這種分散式的通知功能
HDFS的JAVA客戶端編寫(JAVA程式碼實現對HDFS的操作)
原始碼如下: package com.sfd.hdfs; import java.io.FileInputStream; import java.io.IOException; import org.apache.commons.compress.ut
鏈表的基本操作java語言實現
auth ndb ack pan log 定義 pac ext col package com.baorant; public class JavaDemo { public static void main(String[] args) {
7.5 zookeeper客戶端curator的基本使用
serve server 超時 one c-c tlist result 強制 car 使用zookeeper原生API實現一些復雜的東西比較麻煩。所以,出現了兩款比較好的開源客戶端,對zookeeper的原生API進行了包裝:zkClient和curator。後者是Net
讀《分布式一致性原理》JAVA客戶端API操作
rst org RoCE row out 錯誤 throws eat 服務 創建會話 客戶端可以通過創建一個Zookeeper實例來連接服務器。4種構造方法如下 ZooKeeper(connectString, sessionTimeout, watcher);
讀《分布式一致性原理》JAVA客戶端API操作2
open size 改變 網絡通 調用 異常 pat ride aca 創建節點 通過客戶端API來創建一個數據節點,有一下兩個接口: public String create(final String path, byte data[], List<ACL&
SWUST--Java實驗(七) 客戶端與伺服器聊天實現
import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorde
【學習筆記】堆的定義及其建立、排序等基本操作的實現
目錄 堆的定義: 堆的基本操作的程式碼實現: 詳情請參見《演算法筆記》P335,此處只做簡單的學習筆記記錄。 堆的定義: 堆是一棵完全二叉樹,樹中的每個結點的值都不小於(或不大於)其左右孩子結點。 堆一般用於優先佇列的實現(目前不是很懂),故預設
HDFS客戶端搭建與Java API操作HDFS
HDFS客戶端搭建 為什麼不建議使用叢集內操作? 如果每一次上傳檔案都是選擇某一臺DN作為客戶端,就會導致這個節點上的磁碟以及網路I0負載超過其他的節點,久而久之這個節點的磁碟以及網絡卡效能遠遠低於其他節點,從而會導致資料的傾斜問題。 配置叢集客戶端的步驟: 1
zookeeper客戶端操作指令彙總
引言: 現如今做分散式,全文搜尋引擎以及訊息中介軟體等等一些開發時,時常會用到註冊中心管理伺服器,將各個外掛之間相互聯絡,因此難免在開發過程中遇到很多疑難問題,這時開發人員難免需要對註冊中心進行維護,因此對註冊中心的客戶端指令的操作無疑是必須掌握的技能,本文是對zookee
ZooKeeper——Curator客戶端基本使用(筆記)
Curator使用 Curator是Netflix公司一個開源的zookeeper客戶端,在原生API介面上進行了包裝,解決了很多ZooKeeper客戶端非常底層的細節開發。同時內部實現了諸如Session超時重連,Watcher反覆註冊等功能,實現了Flue