這篇文章將為大家詳細(xì)講解有關(guān)hbase各組件的作用是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
成都創(chuàng)新互聯(lián)為企業(yè)級客戶提高一站式互聯(lián)網(wǎng)+設(shè)計服務(wù),主要包括成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、App定制開發(fā)、小程序定制開發(fā)、宣傳片制作、LOGO設(shè)計等,幫助客戶快速提升營銷能力和企業(yè)形象,創(chuàng)新互聯(lián)各部門都有經(jīng)驗豐富的經(jīng)驗,可以確保每一個作品的質(zhì)量和創(chuàng)作周期,同時每年都有很多新員工加入,為我們帶來大量新的創(chuàng)意。
Zookeeper的作用
保證任何時候,集群中只有一個master
存貯所有Region的尋址入口。
實(shí)時監(jiān)控RegionServer的狀態(tài),將Region server的上線和下線信息實(shí)時通知給Master
存儲Hbase的schema,包括有哪些table,每個table有哪些column family
Hmaster的作用
Zookeeper避免了HMaster的單點(diǎn)問題,一個Hbase集群可以啟動多個HMaster,而Zookeeper通過Election的方式保證集群中只有一個HMaster處于live的狀態(tài)。其它都處于休眠的狀態(tài),如果HMaster出現(xiàn)問題,則Zookeeper 則喚醒其它休眠的HMaster。
1、管理用戶對Table的增、刪、改、查操作
2、管理RegionServer的負(fù)載均衡、調(diào)整Region的分布
3、在Region Split后,將新Region分布到不同的RegionServer。
4、在RegionServer宕機(jī)后,那該RegionServer上所管理的Region 由HMaster進(jìn)行重新分配。
總結(jié)HMaster 的主要任務(wù):1、HTable DDL 操作 2、Region 分配工作。 其余的基本上都是client 和RegionServer打交道來完成的。
HRegionServer的作用
HRegionServer 主要負(fù)責(zé)相應(yīng)用戶的I/O請求,進(jìn)而跟HDFS交互,從HDFS中讀寫數(shù)據(jù),雖然每個進(jìn)程都很重要,但個人認(rèn)為HRegionServer是HBase中最核心的進(jìn)程。
下面對HRegionServer的內(nèi)部結(jié)構(gòu)做一個簡單描述:
HRegionServer 內(nèi)部管理了一系列的HRegion對象,HRegion和Region是一回事嗎?其實(shí)HRegion對應(yīng)了Table中的一個Region,HRegion是對其進(jìn)行的封裝。每個HRegion中由多個HStore組成。
HStore則對應(yīng)Table中的Column Family,不論此Column Family 內(nèi)部有多少數(shù)據(jù),都會創(chuàng)建一個新的HStore,因此將相同屬性的數(shù)據(jù)放進(jìn)相同的Column Family 很有必要,避免一次訪問,訪問多個HStore,性能低下。而HStore 則是HBase的核心的存儲單元了,而HStore 由兩個部分組成,一時MemStore,再就是StoreFile
MemStore 是Sorted Memory Buffer ,client 寫入的數(shù)據(jù)先寫入MemStore,當(dāng)達(dá)到MemStore的閥值時,將其Flush 成為一個StoreFile(HFile),StoreFile 則是存儲在硬盤上的文件
HBase的第一次讀寫
在HBase 0.96以后去掉了-ROOT- Table,只剩下這個特殊的目錄表叫做Meta Table(hbase:meta),它存儲了集群中所有用戶HRegion的位置信息,而ZooKeeper的節(jié)點(diǎn)中(/hbase/meta-region-server)存儲的則直接是這個Meta Table的位置,并且這個Meta Table如以前的-ROOT- Table一樣是不可split的。這樣,客戶端在第一次訪問用戶Table的流程就變成了:
從ZooKeeper(/hbase/meta-region-server)中獲取hbase:meta的位置(HRegionServer的位置),緩存該位置信息。
從HRegionServer中查詢用戶Table對應(yīng)請求的RowKey所在的HRegionServer,緩存該位置信息。
從查詢到HRegionServer中讀取Row。
從這個過程中,我們發(fā)現(xiàn)客戶會緩存這些位置信息,然而第二步它只是緩存當(dāng)前RowKey對應(yīng)的HRegion的位置,因而如果下一個要查的RowKey不在同一個HRegion中,則需要繼續(xù)查詢hbase:meta所在的HRegion,然而隨著時間的推移,客戶端緩存的位置信息越來越多,以至于不需要再次查找hbase:meta Table的信息,除非某個HRegion因為宕機(jī)或Split被移動,此時需要重新查詢并且更新緩存。
關(guān)于hbase各組件的作用是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。