日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ZooKeeper快速入门

發布時間:2024/4/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZooKeeper快速入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 概述 Zookeeper是Hadoop的一個子項目,它是分布式系統中的協調系統,可提供的服務主要有:配置服務、 名字服務、分布式同步、組服務等。 它有如下的一些特點: 簡單 Zookeeper的核心是一個精簡的文件系統,它支持一些簡單的操作和一些抽象操作,例如,排序和通知。 豐富 Zookeeper的原語操作是很豐富的,可實現一些協調數據結構和協議。例如,分布式隊列、分布式鎖和 一組同級別節點中的“領導者選舉”。 高可靠 Zookeeper支持集群模式,可以很容易的解決單點故障問題。 松耦合交互 不同進程間的交互不需要了解彼此,甚至可以不必同時存在,某進程在zookeeper中留下消息后, 該進程結束后其它進程還可以讀這條消息。 資源庫 ookeeper實現了一個關于通用協調模式的開源共享存儲庫,能使開發者免于編寫這類通用協議。2. ZooKeeper的安裝 獨立模式安裝 Zookeeper的運行環境是需要java的,建議安裝oracle的java6. 可去官網下載一個穩定的版本,然后進行安裝:http://zookeeper.apache.org/ 解壓后在zookeeper的conf目錄下創建配置文件zoo.cfg,里面的配置信息可參考統計目錄下的 zoo_sample.cfg文件,我們這里配置為: tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/zookeeper-data/ clientPort=2181 tickTime:指定了ZooKeeper的基本時間單位(以毫秒為單位); initLimit:指定了啟動zookeeper時,zookeeper實例中的隨從實例同步到領導實例的初始化連接時間限制, 超出時間限制則連接失敗(以tickTime為時間單位); syncLimit:指定了zookeeper正常運行時,主從節點之間同步數據的時間限制,若超過這個時間限制, 那么隨從實例將會被丟棄; dataDir:zookeeper存放數據的目錄; clientPort:用于連接客戶端的端口。啟動一個本地的ZooKeeper實例 zkServer.sh start4. Zookeeper的存儲模型 ookeeper的數據存儲采用的是結構化存儲,結構化存儲是沒有文件和目錄的概念,里邊的目錄和文件 被抽象成了節點(node),zookeeper里可以稱為znode。最上邊的是根目錄,下邊分別是不同級別的子目錄。5. Zookeeper客戶端的使用 zkCli.sh 可使用./zkCli.sh -server localhost來連接到Zookeeper服務上。 使用ls /可查看根節點下有哪些子節點,可以雙擊Tab鍵查看更多命令。6. Zookeeper創建Znode Znode有兩種類型:短暫的和持久的。短暫的znode在創建的客戶端與服務器端斷開(無論是明確的斷開 還是故障斷開)連接時,該znode都會被刪除;相反,持久的znode則不會。7. Zookeeper刪除Znode zk.delete(path,version)方法的第二個參數是znode版本號,如果提供的版本號和znode版本號一致 才會刪除這個znode,這樣可以檢測出對znode的修改沖突。通過將版本號設置為-1,可以繞過這個版本 檢測機制,無論znode的版本號是什么,都會直接將其刪除。8. Zookeeper的相關操作 ZooKeeper中共有9中操作: create:創建一個znode delete:刪除一個znode exists:測試一個znode getACL,setACL:獲取/設置一個znode的ACL(權限控制) getChildren:獲取一個znode的子節點 getData,setData:獲取/設置一個znode所保存的數據 sync:將客戶端的znode視圖與ZooKeeper同步 這里更新數據是必須要提供znode的版本號(也可以使用-1強制更新,這里可以執行前通過exists方法 拿到znode的元數據Stat對象,然后從Stat對象中拿到對應的版本號信息),如果版本號不匹配,則 更新會失敗。因此一個更新失敗的客戶端可以嘗試是否重試或執行其它操作。

?

總結

以上是生活随笔為你收集整理的ZooKeeper快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。