Zookeeper的簡介及命令行操作

  • 目錄
  • 前言
    • 1、Zookeeper簡介
    • 2、Zookeeper結構
    • 3、Zookeeper常用的命令行操作
  • 總結:

目錄

前言

作為一款第三方的協調服務框架,ZK被應用在許多地方,如:Hbase中用于存儲-ROOT表的位置信息;Storm中用于保存任務分配的信息、心跳信息、元數據信息等。只要是在整個設計中需要一個第三方的組件來滿足“元數據的存儲、提供監聽服務”的需求,ZK都可以滿足。接下來就簡單介紹下ZK。

1、Zookeeper簡介

Zookeeper**是一個分布式協調服務;就是為用戶的分布式應用程序提供協調服務**
A、zookeeper是為別的分布式程序服務的
B、Zookeeper本身就是一個分布式程序(只要有半數以上節點存活,ZK就能正常服務)
C、Zookeeper所提供的服務涵蓋:主從協調、服務器節點動態上下線、統一配置管理、分布式共享鎖、統一名稱服務……
D、雖然說可以提供各種服務,但是zookeeper在底層其實只提供了兩個功能:

  • 管理(存儲,讀取)用戶程序提交的數據(狀態數據);
  • 并為用戶程序提供數據節點監聽服務;

Zookeeper常用應用場景:
1、服務器集群上的采集程序需要實時從相關的服務器拿數據,若服務器掛了,會造成損失。需要一個第三方來記錄每臺服務器的采集數據的狀態信息和監聽每臺服務器的狀態,以及提供選舉策略來支撐由那臺服務器來接替掛了的服務器。
2、若幾臺服務器的一些配置文件相同,可以將這些文件放置到第三方上,通過第三方來傳輸這些文件到相應的服務器上(更新配置文件時也只需更新第三方上的一個配置文件即可)。

Zookeeper集群的角色: Leader 和 follower (Observer)

Zookeeper特性:
1、Zookeeper:一個leader,多個follower組成的集群
2、全局數據一致:每個server保存一份相同的數據副本,client無論連接到哪個server,數據都是一致的
3、分布式讀寫,更新請求轉發,由leader實施
4、更新請求順序進行,來自同一個client的更新請求按其發送順序依次執行
5、數據更新原子性,一次數據更新要么成功,要么失敗
6、實時性,在一定時間范圍內,client能讀到最新數據

2、Zookeeper結構

2.1、Zookeeper數據結構:
1、層次化的目錄結構,命名符合常規文件系統規范(見下圖)
2、每個節點在zookeeper中叫做znode,并且其有一個唯一的路徑標識
3、節點Znode可以包含數據和子節點(但是EPHEMERAL類型的節點不能有子節點,下一頁詳細講解)
4、客戶端應用可以在節點上設置監視器(后續詳細講解)

2.2、數據結構的圖
這里寫圖片描述

2.3、節點類型
1、Znode有兩種類型
短暫(ephemeral)(斷開連接自己刪除)
持久(persistent)(斷開連接不刪除)
2、Znode有四種形式的目錄節點(默認是persistent )(帶序列和不帶序列的)
PERSISTENT
PERSISTENT_SEQUENTIAL(持久序列/test0000000019 )
EPHEMERAL
EPHEMERAL_SEQUENTIAL
3、創建znode時設置順序標識,znode名稱后會附加一個值,順序號是一個單調遞增的計數器,由父節點維護
4、在分布式系統中,順序號可以被用于為所有的事件進行全局排序,這樣客戶端可以通過順序號推斷事件的順序

3、Zookeeper常用的命令行操作

運行 zkCli.sh –server <ip>進入命令行工具

這里寫圖片描述

1、使用 ls 命令來查看當前 ZooKeeper 中所包含的內容:
[zk: 202.115.36.251:2181(CONNECTED) 1] ls /
2、創建一個新的 znode ,使用 create /zk myData 。這個命令創建了一個新的 znode 節點“ zk ”以及與它關聯的字符串:
[zk: 202.115.36.251:2181(CONNECTED) 2] create /zk "myData“
3、我們運行 get 命令來確認 znode 是否包含我們所創建的字符串:
[zk: 202.115.36.251:2181(CONNECTED) 3] get /zk
#監聽這個節點的變化,當另外一個客戶端改變/zk時(這里只是改變/zk中的數據內容,當文件出現增刪時用ls /zk watch),它會打出下面的
#WATCHER::
#WatchedEvent state:SyncConnected type:NodeDataChanged path:/zk
[zk: localhost:2181(CONNECTED) 4] get /zk watch
4、下面我們通過 set 命令來對 zk 所關聯的字符串進行設置:
[zk: 202.115.36.251:2181(CONNECTED) 4] set /zk "zsl“
5、下面我們將剛才創建的 znode 刪除:
[zk: 202.115.36.251:2181(CONNECTED) 5] delete /zk
6、刪除節點:rmr
[zk: 202.115.36.251:2181(CONNECTED) 5] rmr /zk

總結:

關于ZK你應該知道以下幾個點:
1、知道是什么;干什么用的。
2、會用。
3、知道內部的工作原理。
如果你知道以上的知識,那么恭喜你已經達到和博主一樣的小菜鳥的級別。接下來會再介紹下ZK內部的選舉機制
(詳見:https://blog.csdn.net/qq_16633405/article/details/79754728)。

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

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

相關文章

移動端開發文章導航

1. 微信企業號 微信企業號 介紹微信企業號 獲取AccessToken微信企業號 獲取用戶信息微信企業號 JS-SDK&#xff1a;上傳圖片2. 微信公眾號 微信公眾號 訂閱號與服務號的區別微信公眾號 幾種移動端UI框架介紹轉載于:https://www.cnblogs.com/polk6/p/6217835.html

打開cmd窗口新技巧get

1.在當前目錄下&#xff0c;按住shift鍵點擊右鍵,選擇在此處打開命令窗口 很多時候我們需要打開命令行然后進入到相應目錄進行一些操作。 常規的做法是: WinR打開運行窗口輸入"cmd"回車打開命令行窗口 假如我們要進入的是D盤foo文件夾下的一個bar子文件夾&#xff0c…

【python】pycharm啟動 一直index,無法運行

花了幾個小時找相關資料&#xff0c;按網上提供答案操作&#xff0c;依然沒有解決, 最后讓它自動更新完才好&#xff08;大概更新了十分鐘 有固態情況&#xff09; 參考鏈接 pycharm啟動后總是不停的updating indices...indexing? pycharm 啟動后一直更新index的問題

Zookeeper集群角色分配原理

ZK內部存在Leader和Follower兩個角色&#xff0c;那么這兩種角色是怎樣劃分呢&#xff1f;或者說是怎么樣被選舉出來呢&#xff1f;以下將詳細介紹ZK內部的選舉機制。 ZK是通過內部的選舉算法來選出Leader。&#xff08;服務器需要配置對應的ID和文件&#xff09;如下圖所示&a…

2016大數據發展7大趨勢

1.算法&#xff08;Algorithms&#xff09;的崛起 大數據已過時&#xff0c;算法正當道。數據已經成為一種商品&#xff0c;每個組織都能夠收集和存儲大量的數據。分析大數據也不再那么引人注目了。每個組織都可以聘用或培訓大數據分析人員來了解數據模式。 2016年&#xff0c;…

請編寫一個方法,實現整數的乘法、減法和除法運算(這里的除指整除)。只允許使用加號。

方法思路 乘法&#xff1a;a*b就等于b個a相加。題目也說了不考慮性能。 減法&#xff1a;a-b就等于a(-1)*b;就等于a加上b的相反數&#xff0c;得到b的相反數就解決了。 除法&#xff1a;a/bn&#xff1b;就是說有n個b相加小于等于a;可以采用b一直加&#xff0c;直到大于a結束。…

MySQL數據庫重點概要總結

目錄前言&#xff1a;1、結構化查詢語言(Structured Query Language)簡稱SQL。2、基本SELECT語句語法3、多表鏈接4、笛卡爾積5、ANSI SQL ANSI SQL&#xff1a;1999標準的連接語法6、單行函數和分組函數的區別&#xff1a;7、分組函數8、SQL語句的執行順序&#xff1a;9、子查詢…

《MySQL排錯指南》——1.9 許可問題

本節書摘來自異步社區出版社《MySQL排錯指南》一書中的第1章&#xff0c;第1.9節&#xff0c;作者&#xff1a;【美】Sveta Smirnova&#xff08;斯維特 斯米爾諾娃&#xff09;&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 1.9 許可問題 MySQL有復雜的…

畢業半年,碼過5個城市

時間飛逝&#xff0c;半年前我還在想我的畢業設計要怎么做&#xff0c;還在擔心自己的答辯能夠拿多少分&#xff0c;而此刻我正在成都寫我喜歡的代碼&#xff0c;過著我想過的生活。畢業半年&#xff0c;碼過5個城市&#xff0c;從廈門->太原-》合肥-》北京-》成都。2016是我…

python ---單例(Singleton)

單例&#xff08;Singleton&#xff09; 單例是一種 設計模式 &#xff0c;應用該模式的類只會生成一個實例。 單例模式保證了在程序的不同位置都 可以且僅可以取到同一個對象實例 &#xff1a;如果實例不存在&#xff0c;會創建一個實例&#xff1b;如果已存在就會返回這個實例…

Oracle-11g-R2 RAC 環境下 GPnP Profile 文件

GPnP Profile 文件的作用&#xff1a; GPnP Profile 文件是一個保存于$GRID_HOME/gpnp/<hostname>/profiles/peer目錄下的小型 XML 文件&#xff0c;名稱為 profile.xml。其用于正確描述 RAC 每個節點的全局特性。每個節點上都會保存一個本地的 GPnP Profile&#xff0c;…

《Pro/ENGINEER野火版5.0從入門到精通》——2.5 設置零件單位

本節書摘來自異步社區《Pro/ENGINEER野火版5.0從入門到精通》一書中的第2章&#xff0c;第2.5節&#xff0c;作者 暴風創新科技&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.5 設置零件單位 由于不同國家單位制的不相同&#xff0c;在企業間合作或溝通…

元類被稱為 Python 中的“深奧的巫術“

元類被稱為 Python 中的“深奧的巫術”。盡管你需要用到它的地方極少&#xff08;除非你基于 zope 編程&#xff09;&#xff0c;可事實上它的基礎理論其實令人驚訝地易懂。 一切皆對象 一切都有類型 “class”和“type”之間本質上并無不同 類也是對象 它們的類型是 type 以…

機器學習之必知開源數據集

之前看到的不錯的文章&#xff0c;玩機器學習數據是關鍵&#xff0c;有了這些東西&#xff0c;你就不必再為沒有數據而苦惱。 轉自&#xff1a;https://www.toutiao.com/i6432197108580745730/ 目錄UCIGoogleTrendsKaggleAWS公用數據集ImagenetMINIST/r/數據集其他數據集 目錄…

PHP中header函數的用法及其注意重點是什么呢

1、使用header函數進行跳轉頁面&#xff1b; header(Location:.$url);  其中$url就是將要跳轉的url了。 這種用法的注意事項有以下幾點&#xff1a; ?Location和":"之間不能有空格&#xff0c;否則會出現錯誤&#xff08;注釋&#xff1a;我剛測試了&#xff0c;在…

《計算機科學概論》—第3章3.3節文本表示法

本節書摘來自華章出版社《計算機科學概論》一書中的第3章&#xff0c;第3.3節文本表示法&#xff0c;作者&#xff3b;美]內爾黛爾&#xff08;Nell Dale&#xff09;約翰路易斯&#xff08;John Lewis&#xff09;&#xff0c;更多章節內容可以訪問云棲社區“華章計算機”公眾…

習題

# -*- coding: utf-8 -*- # Time : 2019/08/08 17:38 # Author : Liu # File : zuoye.py# 一、 # 將此功能定義成一個函數&#xff0c; # 電腦隨機生成1~100隨機數&#xff0c;用戶輸入一個數字&#xff0c;電腦提示用戶大或者小&#xff0c;猜錯&#xff0c;繼續提示&a…

經典技術面試指南

目錄計算機基礎知識數據結構算法操作系統計算機網絡數據庫海量數據處理C語言基礎Java基礎Java高級Java Web設計模式知識的綜合能力工具使用項目相關技術熱情表達能力思考方式其他推薦閱讀 目錄 最近看到一份不錯的面試總結&#xff0c;也是每位程序猿都應該掌握的基礎&#x…

Linux 共享內存詳解一

共享內存段被多個進程附加的時候&#xff0c;如果不是所有進程都已經調用shmdt&#xff0c;那么刪除該共享內存段時&#xff0c;會出現一個臨時的不完整的共享內存段&#xff08;key值是0&#xff09;&#xff0c;無法徹底刪除。只有當所有進程都調用shmdt&#xff0c;這個臨時…

python 魔術方法

python 魔術方法 常用魔術方法 魔術方法就是一個類的特殊方法&#xff0c;和普通方法唯一的不同時&#xff0c;普通方法需要調用&#xff01;而魔術方法由系統自動調用。 1.__init__ 初始化魔術方法 觸發時機&#xff1a;初始化對象時觸發&#xff08;不是實例化觸發&#xf…