zookeeper基本概念和功能

zookeeper基本概念和功能

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、遠(yuǎn)安網(wǎng)站維護(hù)、網(wǎng)站推廣。

zookeeper是hadoop生態(tài)圈里面重要的底層的框架,主要為上層的框架提供分布式協(xié)調(diào)服務(wù)的。

hadoop-spof 問題及HA 解決思路
引入集群協(xié)調(diào)服務(wù)框架的必要性

zookeeper 簡(jiǎn)介
ZooKeeper 是一個(gè)分布式應(yīng)用程序協(xié)調(diào)服務(wù),分布式應(yīng)用程序可以基于它實(shí)現(xiàn)同步服務(wù),配置維護(hù)和命名服務(wù)等。
目前zookeeper 被廣泛應(yīng)用于hadoop 生態(tài)體系中各種框架的分布式協(xié)調(diào),我們也可以利用zookeeper 來簡(jiǎn)化分布式應(yīng)用開發(fā)

Zk簡(jiǎn)介
1、zookeeper翻譯成英文叫動(dòng)物園管理員 動(dòng)物員管理員的作用是什么呢??
2、讓大象(hadoop),蜂巢(hive) ,豬(pig)能夠更友好的在一起,以上幾種都是hadoop的組件
3、ZooKeeper是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù)
4、zookeeper其實(shí)就是一個(gè)軟件,所有安裝了zookeeper的服務(wù)器都叫?zookeeper server
5、zookeeper server 還分為兩類角色,由 leader 和 follower 組成,如果leader掛掉,會(huì)有選舉機(jī)制,follower直接替換leader ,leader只有一個(gè),剩下的都是follower
6、zookeeper 的所有服務(wù)器中的所有數(shù)據(jù)結(jié)構(gòu)(樹形結(jié)構(gòu))是完全相同的,就是說我搭建一個(gè)zookeeper集群,集群里面所有機(jī)器的數(shù)據(jù)是一樣的
7、數(shù)據(jù)是樹形結(jié)構(gòu)的,與linux目錄結(jié)構(gòu)是一樣一樣的,zk的每個(gè)數(shù)據(jù)目錄就是一個(gè)znode
8、我需要運(yùn)行幾個(gè)ZooKeeper? 你運(yùn)行一個(gè)zookeeper也是可以的,但是在生產(chǎn)環(huán)境中,你最好部署3,5,7個(gè)節(jié)點(diǎn)。部署的越多,可靠性就越高,當(dāng)然最好是部署奇數(shù)個(gè),偶數(shù)個(gè)不是不可以的,但是zookeeper集群是以宕機(jī)個(gè)數(shù)過半才會(huì)讓整個(gè)集群宕機(jī)的,所以奇數(shù)個(gè)集群更佳

zk對(duì)hdfs HA高可用集群的作用?
1、qjn集群(edit日志管理系統(tǒng) HA的)需要zk集群去實(shí)現(xiàn),協(xié)調(diào)服務(wù)。
2、namenode誰是active誰是standay 記錄在zk中
3、zkfc就是基于zk實(shí)現(xiàn)的失敗切換控制器

zk對(duì)yarn 集群HA的作用?
1、誰是recoursemanager active誰是從的RM 記錄在zk中
基本同hdfs中在作用一樣

zk對(duì)hbase集群HA的作用?
1、誰是hmaster記錄在zk中
2、zk留存了服務(wù)器健康狀態(tài)與是否可用的信息,并提供服務(wù)器故障通知,通過zookeeper cluster可以獲取當(dāng)前系統(tǒng)表.META.的存儲(chǔ)所對(duì)應(yīng)的regionserver信息。
3、zk用consensus協(xié)議來保障共享狀態(tài),需要注意的是,一份consensus協(xié)議需要3~5個(gè)機(jī)器參與(奇數(shù)個(gè))。
//官方解釋
1 保證任何時(shí)候,集群中只有一個(gè)master
2 存貯所有Region 的尋址入口。
3 實(shí)時(shí)監(jiān)控Region Server 的狀態(tài),將Region server 的上線和下線信息實(shí)時(shí)通知給Master
4 存儲(chǔ)Hbase 的schema(模式),包括有哪些table,每個(gè)table 有哪些column family

Zk對(duì)kafka集群的作用?
1.當(dāng)一個(gè)kafka broker啟動(dòng)后,首先會(huì)向zookeeper注冊(cè)自己的節(jié)點(diǎn)信息(臨時(shí)znode),同時(shí)當(dāng)broker和zookeeper斷開連接時(shí),此znode也會(huì)被刪除.
2.其中partition leader的位置(host:port)注冊(cè)在zookeeper中
3.對(duì)于offset的保存和使用,有consumer來控制 offset將會(huì)保存在zookeeper中。

小結(jié):
Zookeeper(第三方) 可以實(shí)現(xiàn)的分布式協(xié)調(diào)服務(wù)包括:
1、統(tǒng)一名稱服務(wù) //如果把每臺(tái)服務(wù)器sever比作一臺(tái)一臺(tái)的資源的,客戶端拿到的就是名稱服務(wù)資源。
2、配置管理
3、分布式共享鎖 //比如在分布式的每臺(tái)服務(wù)器上都需要去修改一個(gè)共享資源,這個(gè)時(shí)候會(huì)產(chǎn)生沖突,
4、集群節(jié)點(diǎn)狀態(tài)協(xié)調(diào)(負(fù)載均衡/主從協(xié)調(diào))//服務(wù)器集群動(dòng)態(tài)感知及失敗切換 zkfc
小結(jié):這上面4點(diǎn)功能并不是zk本身自帶的功能,而是,這些功能可以利用zk來實(shí)現(xiàn)。
zookeeper的功能:
也就是第三方,要你查數(shù)據(jù)的時(shí)候,可以返還給客戶端,所以具體他是不知道干什么的
(最重要的功能也就是替客戶端保管數(shù)據(jù),為客戶提供數(shù)據(jù)的監(jiān)聽服務(wù))

內(nèi)部自己設(shè)計(jì)了自己分布式內(nèi)存數(shù)據(jù)庫(用于保管數(shù)據(jù))

ZooKeeper 數(shù)據(jù)模型和層次命名空間
提供的命名空間與標(biāo)準(zhǔn)的文件系統(tǒng)非常相似。一個(gè)名稱是由通過斜線分隔開的路徑名序列所組成的。ZooKeeper 中的每一個(gè)節(jié)點(diǎn)是都通過路徑來識(shí)別。

ZooKeeper 中的數(shù)據(jù)節(jié)點(diǎn):

zookeeper基本概念和功能

每一個(gè)節(jié)點(diǎn)稱為znode,通過路徑來訪問
每一個(gè)znode 維護(hù)著:數(shù)據(jù)、stat 數(shù)據(jù)結(jié)構(gòu)(ACL、時(shí)間戳及版本號(hào))
znode 維護(hù)的數(shù)據(jù)主要是用于存儲(chǔ)協(xié)調(diào)的數(shù)據(jù),如狀態(tài)、配置、位置等信息,每個(gè)節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)量很小,KB 級(jí)別
znode 的數(shù)據(jù)更新后,版本號(hào)等控制信息也會(huì)更新(增加)
znode 還具有原子性操作的特點(diǎn):寫--全部替換,讀--全部
znode 有永久節(jié)點(diǎn)和臨時(shí)節(jié)點(diǎn)之分:臨時(shí)節(jié)點(diǎn)指創(chuàng)建它的session 一結(jié)束,該節(jié)點(diǎn)即被zookeeper 刪除;

zk 性能:
Zookeeper 的讀寫速度非??欤ɑ趦?nèi)存數(shù)據(jù)庫),并且讀的速度要比寫的速度更快。
順序一致性:客戶端的更新順序與它們被發(fā)送的順序相一致。
原子性:更新操作要么成功要么失敗,沒有第三種結(jié)果。
單系統(tǒng)鏡像:無論客戶端連接到哪一個(gè)服務(wù)器,客戶端將看到相同的
ZooKeeper 視圖。
可靠性:一旦一個(gè)更新操作被應(yīng)用,那么在客戶端再次更新它之前,它的值將不會(huì)改變。這個(gè)保證將會(huì)產(chǎn)生下面兩種結(jié)果:
1 .如果客戶端成功地獲得了正確的返回代碼,那么說明更新已經(jīng)成功。如果不能夠獲得返回代碼(由于通信錯(cuò)誤、超時(shí)等等),那么客戶端將不知道更新操作是否生效。
2 .當(dāng)從故障恢復(fù)的時(shí)候,任何客戶端能夠看到的執(zhí)行成功的更新操作將不會(huì)被回滾。
實(shí)時(shí)性:在特定的一段時(shí)間內(nèi),客戶端看到的系統(tǒng)需要被保證是實(shí)時(shí)的。在此時(shí)間段內(nèi),任何系統(tǒng)的改變將被客戶端看到,或者被客戶端偵測(cè)到。給予這些一致性保證,ZooKeeper 更高級(jí)功能的設(shè)計(jì)與實(shí)現(xiàn)將會(huì)變得非常容易,
例如: leader 選舉、隊(duì)列以及可撤銷鎖等機(jī)制的實(shí)現(xiàn)。

zookeeper 集群組件:
同一個(gè)zookeeper服務(wù)下的server 有三種,一種是leader server,另一種是follower server,還有一種叫observer server;
leader特殊之處在于它有決定權(quán),具有Request Processor(observer server 與follower server 的區(qū)別就在于不參與leader 選舉)
zk中內(nèi)部leader選舉的算法:paxos

如果客戶端修改zk集群中的數(shù)據(jù)的時(shí)候,首先集群中會(huì)找到leader 然后在leader上修改本地?cái)?shù)據(jù),然后每臺(tái)follower會(huì)去同步信息

zk中的端口意思
(其中2181代表:客戶端與服務(wù)器連接所用的端口)
(其中2888代表:leader與follower之間的通信用的端口)
(其中3888代表:follower之間選舉投票用的端口)

文章題目:zookeeper基本概念和功能
本文URL:http://muchs.cn/article2/ispeic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、定制網(wǎng)站、搜索引擎優(yōu)化網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化