zookeeper基本概念和功能
在鹽池等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、成都做網(wǎng)站 網(wǎng)站設(shè)計制作按需設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,鹽池網(wǎng)站建設(shè)費用合理。zookeeper是hadoop生態(tài)圈里面重要的底層的框架,主要為上層的框架提供分布式協(xié)調(diào)服務(wù)的。
hadoop-spof 問題及HA 解決思路
引入集群協(xié)調(diào)服務(wù)框架的必要性
zookeeper 簡介
ZooKeeper 是一個分布式應(yīng)用程序協(xié)調(diào)服務(wù),分布式應(yīng)用程序可以基于它實現(xiàn)同步服務(wù),配置維護和命名服務(wù)等。
目前zookeeper 被廣泛應(yīng)用于hadoop 生態(tài)體系中各種框架的分布式協(xié)調(diào),我們也可以利用zookeeper 來簡化分布式應(yīng)用開發(fā)
Zk簡介
1、zookeeper翻譯成英文叫動物園管理員 動物員管理員的作用是什么呢??
2、讓大象(hadoop),蜂巢(hive) ,豬(pig)能夠更友好的在一起,以上幾種都是hadoop的組件
3、ZooKeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù)
4、zookeeper其實就是一個軟件,所有安裝了zookeeper的服務(wù)器都叫?zookeeper server
5、zookeeper server 還分為兩類角色,由 leader 和 follower 組成,如果leader掛掉,會有選舉機制,follower直接替換leader ,leader只有一個,剩下的都是follower
6、zookeeper 的所有服務(wù)器中的所有數(shù)據(jù)結(jié)構(gòu)(樹形結(jié)構(gòu))是完全相同的,就是說我搭建一個zookeeper集群,集群里面所有機器的數(shù)據(jù)是一樣的
7、數(shù)據(jù)是樹形結(jié)構(gòu)的,與linux目錄結(jié)構(gòu)是一樣一樣的,zk的每個數(shù)據(jù)目錄就是一個znode
8、我需要運行幾個ZooKeeper? 你運行一個zookeeper也是可以的,但是在生產(chǎn)環(huán)境中,你最好部署3,5,7個節(jié)點。部署的越多,可靠性就越高,當然最好是部署奇數(shù)個,偶數(shù)個不是不可以的,但是zookeeper集群是以宕機個數(shù)過半才會讓整個集群宕機的,所以奇數(shù)個集群更佳
zk對hdfs HA高可用集群的作用?
1、qjn集群(edit日志管理系統(tǒng) HA的)需要zk集群去實現(xiàn),協(xié)調(diào)服務(wù)。
2、namenode誰是active誰是standay 記錄在zk中
3、zkfc就是基于zk實現(xiàn)的失敗切換控制器
zk對yarn 集群HA的作用?
1、誰是recoursemanager active誰是從的RM 記錄在zk中
基本同hdfs中在作用一樣
zk對hbase集群HA的作用?
1、誰是hmaster記錄在zk中
2、zk留存了服務(wù)器健康狀態(tài)與是否可用的信息,并提供服務(wù)器故障通知,通過zookeeper cluster可以獲取當前系統(tǒng)表.META.的存儲所對應(yīng)的regionserver信息。
3、zk用consensus協(xié)議來保障共享狀態(tài),需要注意的是,一份consensus協(xié)議需要3~5個機器參與(奇數(shù)個)。
//官方解釋
1 保證任何時候,集群中只有一個master
2 存貯所有Region 的尋址入口。
3 實時監(jiān)控Region Server 的狀態(tài),將Region server 的上線和下線信息實時通知給Master
4 存儲Hbase 的schema(模式),包括有哪些table,每個table 有哪些column family
Zk對kafka集群的作用?
1.當一個kafka broker啟動后,首先會向zookeeper注冊自己的節(jié)點信息(臨時znode),同時當broker和zookeeper斷開連接時,此znode也會被刪除.
2.其中partition leader的位置(host:port)注冊在zookeeper中
3.對于offset的保存和使用,有consumer來控制 offset將會保存在zookeeper中。
小結(jié):
Zookeeper(第三方) 可以實現(xiàn)的分布式協(xié)調(diào)服務(wù)包括:
1、統(tǒng)一名稱服務(wù) //如果把每臺服務(wù)器sever比作一臺一臺的資源的,客戶端拿到的就是名稱服務(wù)資源。
2、配置管理
3、分布式共享鎖 //比如在分布式的每臺服務(wù)器上都需要去修改一個共享資源,這個時候會產(chǎn)生沖突,
4、集群節(jié)點狀態(tài)協(xié)調(diào)(負載均衡/主從協(xié)調(diào))//服務(wù)器集群動態(tài)感知及失敗切換 zkfc
小結(jié):這上面4點功能并不是zk本身自帶的功能,而是,這些功能可以利用zk來實現(xiàn)。
zookeeper的功能:
也就是第三方,要你查數(shù)據(jù)的時候,可以返還給客戶端,所以具體他是不知道干什么的
(最重要的功能也就是替客戶端保管數(shù)據(jù),為客戶提供數(shù)據(jù)的監(jiān)聽服務(wù))
內(nèi)部自己設(shè)計了自己分布式內(nèi)存數(shù)據(jù)庫(用于保管數(shù)據(jù))
ZooKeeper 數(shù)據(jù)模型和層次命名空間
提供的命名空間與標準的文件系統(tǒng)非常相似。一個名稱是由通過斜線分隔開的路徑名序列所組成的。ZooKeeper 中的每一個節(jié)點是都通過路徑來識別。
ZooKeeper 中的數(shù)據(jù)節(jié)點:
每一個節(jié)點稱為znode,通過路徑來訪問
每一個znode 維護著:數(shù)據(jù)、stat 數(shù)據(jù)結(jié)構(gòu)(ACL、時間戳及版本號)
znode 維護的數(shù)據(jù)主要是用于存儲協(xié)調(diào)的數(shù)據(jù),如狀態(tài)、配置、位置等信息,每個節(jié)點存儲的數(shù)據(jù)量很小,KB 級別
znode 的數(shù)據(jù)更新后,版本號等控制信息也會更新(增加)
znode 還具有原子性操作的特點:寫--全部替換,讀--全部
znode 有永久節(jié)點和臨時節(jié)點之分:臨時節(jié)點指創(chuàng)建它的session 一結(jié)束,該節(jié)點即被zookeeper 刪除;
zk 性能:
Zookeeper 的讀寫速度非??欤ɑ趦?nèi)存數(shù)據(jù)庫),并且讀的速度要比寫的速度更快。
順序一致性:客戶端的更新順序與它們被發(fā)送的順序相一致。
原子性:更新操作要么成功要么失敗,沒有第三種結(jié)果。
單系統(tǒng)鏡像:無論客戶端連接到哪一個服務(wù)器,客戶端將看到相同的
ZooKeeper 視圖。
可靠性:一旦一個更新操作被應(yīng)用,那么在客戶端再次更新它之前,它的值將不會改變。這個保證將會產(chǎn)生下面兩種結(jié)果:
1 .如果客戶端成功地獲得了正確的返回代碼,那么說明更新已經(jīng)成功。如果不能夠獲得返回代碼(由于通信錯誤、超時等等),那么客戶端將不知道更新操作是否生效。
2 .當從故障恢復(fù)的時候,任何客戶端能夠看到的執(zhí)行成功的更新操作將不會被回滾。
實時性:在特定的一段時間內(nèi),客戶端看到的系統(tǒng)需要被保證是實時的。在此時間段內(nèi),任何系統(tǒng)的改變將被客戶端看到,或者被客戶端偵測到。給予這些一致性保證,ZooKeeper 更高級功能的設(shè)計與實現(xiàn)將會變得非常容易,
例如: leader 選舉、隊列以及可撤銷鎖等機制的實現(xiàn)。
zookeeper 集群組件:
同一個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ù)的時候,首先集群中會找到leader 然后在leader上修改本地數(shù)據(jù),然后每臺follower會去同步信息
zk中的端口意思
(其中2181代表:客戶端與服務(wù)器連接所用的端口)
(其中2888代表:leader與follower之間的通信用的端口)
(其中3888代表:follower之間選舉投票用的端口)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。