十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
小編給大家分享一下HBase架構(gòu)的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
文圣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!
通常認(rèn)為,Hadoop主要包含以下四大組件:
分布式鎖服務(wù) Zookeeper
分布式文件系統(tǒng) HDFS
分布式計(jì)算框架 MapReduce
分布式數(shù)據(jù)庫(kù) HBase
其中,Zookeeper是HDFS、MapReduce、HBase都要依賴的基礎(chǔ)組件,它為分布式系統(tǒng)中的一致性問(wèn)題的提供解決方案。
狹義的Hadoop,就是指HDFS和MapReduce;廣義的Hadoop,包括HDFS、MapReduce、HBase,甚至也包括這個(gè)生態(tài)圈中的Hive、Spark等。
關(guān)于Hadoop生態(tài)圈的內(nèi)容,見(jiàn):http://www.36dsj.com/archives/23504
Hbase構(gòu)建于HDFS之上,它依賴HDFS和Zookeeper。

下面分別介紹各類(lèi)結(jié)點(diǎn)的作用:
Client包含訪問(wèn)HBase的接口,并維護(hù)著一些Cache來(lái)加快對(duì)HBase的訪問(wèn),比如regione的位置信息。
保證任何時(shí)候,集群中只有一個(gè)master;實(shí)現(xiàn)Master主從節(jié)點(diǎn)的failover。
實(shí)時(shí)監(jiān)控Region Server的狀態(tài),將Region Server的上線和下線信息實(shí)時(shí)通知給Master。
存儲(chǔ)Region的尋址入口。
存儲(chǔ)HBase的schema,包括有哪些table,每個(gè)table有哪些column family。
負(fù)責(zé)RegionServer的負(fù)載均衡。
管理和分配Region,比如在region split時(shí)分配新的Region;在Region Server退出時(shí)遷移其內(nèi)的region到其它Region Server上。
負(fù)責(zé)schema的更新請(qǐng)求,實(shí)現(xiàn)DDL操作(如對(duì)table、column familiy的create、drop等),并將schema的更新同步到Zookeeper。
權(quán)限控制(ACL)。
維護(hù)Master分配給它的region,處理對(duì)這些region的IO請(qǐng)求。
負(fù)責(zé)切分在運(yùn)行過(guò)程中變得過(guò)大的region。
Client通過(guò)Zookeeper、Region Server尋址,找到用戶talbe、RowKey所在的Region Server后,就直接從該Region Server讀寫(xiě)數(shù)據(jù)了。這個(gè)過(guò)程不需要Master的參與,Master只是維護(hù)table和region的元數(shù)據(jù)信息,負(fù)載很低。
HBase有個(gè)特殊的表:.META. ,它存儲(chǔ)了所有用戶table對(duì)應(yīng)的Region位置信息,它是不可split的;而ZooKeeper節(jié)點(diǎn)(/hbase/meta-region-server)存儲(chǔ)了.META.表的位置。
客戶端在第一次訪問(wèn)用戶table的流程為:
從ZooKeeper(/hbase/meta-region-server)中獲取hbase:meta的位置(HRegionServer的位置),緩存該位置信息。
從Region Server中查詢用戶table對(duì)應(yīng)請(qǐng)求的RowKey所在的Region Server,緩存該位置信息。
從查詢到的Region Server讀取Row。
從這個(gè)過(guò)程中,我們發(fā)現(xiàn)客戶會(huì)緩存這些位置信息,然而第二步它只是緩存當(dāng)前RowKey對(duì)應(yīng)的HRegion的位置,因而如果下一個(gè)要查的RowKey不在同一個(gè)HRegion中,則需要繼續(xù)查詢hbase:meta所在的HRegion,然而隨著時(shí)間的推移,客戶端緩存的位置信息越來(lái)越多,以至于不需要再次查找hbase:meta Table的信息,除非某個(gè)Region因?yàn)殄礄C(jī)或split被移動(dòng),此時(shí)需要重新查詢并且更新緩存。
以上是“HBase架構(gòu)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!