HBase原理深入解析(一)----HBase架構(gòu)總覽

前言:掌握Hbase的重要性不言而喻,掌握Hbase的設(shè)計原理更是重中之重。本文是對HBase原理進行講解系列文章的開篇,本文盡量詳細的從整體上介紹HBase的架構(gòu)汉规,并對每個部分的名詞進行初步解釋,使我們對HBase有個整體的了解驹吮。

一针史、邏輯存儲模型

????HBase以表的形式存儲數(shù)據(jù),表由行和列組成碟狞。列劃分為若干個列族啄枕,如下圖所示:


001.jpg

????RowKey:Hbase使用Rowkey來唯一的區(qū)分某一行的數(shù)據(jù)。如圖中"rk001"

????列族:Hbase通過列族劃分數(shù)據(jù)的存儲族沃,列族下面可以包含任意多的列频祝,實現(xiàn)靈活的數(shù)據(jù)存取。Hbase的列族不是越多越好竭业,官方推薦的是列族最好小于或者等于3智润。我們使用的場景一般是1個列族。如圖中的“CF1”列族未辆,下面包含兩個列:"Name"和"Alias"窟绷。

????時間戳:TimeStamp對Hbase來說至關(guān)重要,因為它是實現(xiàn)Hbase多版本的關(guān)鍵咐柜。在Hbase中使用不同的timestame來標識相同rowkey行對應的不通版本的數(shù)據(jù)兼蜈。

????Cell:HBase 中通過 rowkey 和 columns 確定的為一個存儲單元稱為 cell。每個 cell 都保存著同一份 數(shù)據(jù)的多個版本拙友。版本通過時間戳來索引为狸。

二、物理存儲模型

????HBase的物理存儲模型如下圖:


002.png

????我們知道遗契,在HBase中辐棒,數(shù)據(jù)以表的形式存儲,表由很多行組成,每一行由Row key(行鍵)以及一個或多個的列值組成漾根。我們可以這么想泰涂,當表有很多很多的Row時,我們把這個表按某些規(guī)則(比如每500條)拆分成很多部分辐怕,那么拆分后的每一部分就是所謂的HRegion逼蒙,這個HRegion作為一個整體被HMaster分配到某一個RegionServer中。這里可以這樣理解寄疏,把HMaster想象成一個老大是牢,他把HRegion給分配到某一個服務器上,這樣一來陕截,一個表就被分成多個HRegion并可能分配到了不同的RegionServer上驳棱。我們剛說HRegion是一個整體,意思是他不能再繼續(xù)往下分割了艘策,他必須在一個RegionServer上蹈胡。

三、總體架構(gòu)

????HBase的總體結(jié)構(gòu)圖如下:

003.png

????包括了HMaster朋蔫、HRegionSever罚渐、HRegion、HLog驯妄、Store荷并、MemStore、StoreFile青扔、HFile等源织。接下來我先用自己的理解把這個結(jié)構(gòu)描述一下,然后再分別介紹每個部分微猖,建議再開一個屏幕對照著架構(gòu)圖看谈息。HBase底層依賴HDFS,通過DFS Cilent進行HDFS操作凛剥。HMaster負責把HRegion分配給HRegionServer侠仇,每一個HRegionServer可以包含多個HRegion,多個HRegion共享HLog犁珠,HLog用來做災難恢復逻炊。每一個HRegion由一個或多個Store組成,一個Store對應表的一個列族犁享,每個Store中包含與其對應的MemStore以及一個或多個StoreFile(是實際數(shù)據(jù)存儲文件HFile的輕量級封裝)余素,MemStore是在內(nèi)存中的,保存了修改的數(shù)據(jù)炊昆,MemStore中的數(shù)據(jù)寫到文件中就是StoreFile桨吊。

3.1 HMaster

????HMaster的主要功能有:
①把HRegion分配到某一個RegionServer威根。
②有RegionServer宕機了,HMaster可以把這臺機器上的Region遷移到active的RegionServer上视乐。
③對HRegionServer進行負載均衡医窿。
④通過HDFS的dfs client接口回收垃圾文件(無效日志等)
注:HMaster沒有單點問題,HBase中可以啟動多個HMaster炊林,通過Zookeeper的Master Election機制保證總有一個Master運行。

3.2 HRegionServer

????①維護HMaster分配給它的HRegion卷要,處理對這些HRegion的IO請求渣聚,也就是說客戶端直接和HRegionServer打交道。(從圖中也能看出來)
????②負責切分正在運行過程中變得過大的HRegion

3.3 HRegion

????下面我們看看HRegion的結(jié)構(gòu):


004.jpg

????每個HRegion由多個Store構(gòu)成僧叉,每個Store保存一個列族(Columns Family)奕枝,表有幾個列族,則有幾個Store瓶堕,每個Store由一個MemStore和多個StoreFile組成隘道,MemStore是Store在內(nèi)存中的內(nèi)容,寫到文件后就是StoreFile郎笆。StoreFile底層是以HFile的格式保存谭梗。

3.4 HLog
????HLog(WAL log):WAL意為write ahead log(預寫日志),用來做災難恢復使用宛蚓,HLog記錄數(shù)據(jù)的變更激捏,包括序列號和實際數(shù)據(jù),所以一旦region server 宕機凄吏,就可以從log中回滾還沒有持久化的數(shù)據(jù)远舅。

3.5 HFile
????HBase的數(shù)據(jù)最終是以HFile的形式存儲在HDFS中的,HBase中HFile有著自己的格式痕钢。此處不細講图柏,留待后面文章詳解。

四任连、總結(jié)

本文從整體上簡單介紹了HBase的架構(gòu)蚤吹,后續(xù)文章將會對HBase內(nèi)部的細節(jié)、讀寫流程等進行分析课梳。敬請期待距辆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市暮刃,隨后出現(xiàn)的幾起案子跨算,更是在濱河造成了極大的恐慌,老刑警劉巖椭懊,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诸蚕,死亡現(xiàn)場離奇詭異步势,居然都是意外死亡,警方通過查閱死者的電腦和手機背犯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門坏瘩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人漠魏,你說我怎么就攤上這事倔矾。” “怎么了柱锹?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵哪自,是天一觀的道長。 經(jīng)常有香客問我禁熏,道長壤巷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任瞧毙,我火速辦了婚禮胧华,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宙彪。我一直安慰自己矩动,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布释漆。 她就那樣靜靜地躺著铅忿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪灵汪。 梳的紋絲不亂的頭發(fā)上檀训,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音享言,去河邊找鬼峻凫。 笑死,一個胖子當著我的面吹牛览露,可吹牛的內(nèi)容都是我干的荧琼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼差牛,長吁一口氣:“原來是場噩夢啊……” “哼命锄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起偏化,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤脐恩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后侦讨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驶冒,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡苟翻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了骗污。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崇猫。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖需忿,靈堂內(nèi)的尸體忽然破棺而出诅炉,到底是詐尸還是另有隱情,我是刑警寧澤屋厘,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布汞扎,位于F島的核電站,受9級特大地震影響擅这,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜景鼠,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一仲翎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铛漓,春花似錦溯香、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至包晰,卻和暖如春湿镀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伐憾。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工勉痴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人树肃。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓蒸矛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胸嘴。 傳聞我的和親對象是個殘疾皇子雏掠,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359