Hbase運(yùn)行機(jī)制

本文思路

  • Hbase是什么
  • Hbase的優(yōu)劣
  • Hbase架構(gòu)
  • Hbase容錯(cuò)
  • Hbase使用總結(jié)

HBase是什么

  1. 基于HDFS的列式存儲(chǔ)NoSql數(shù)據(jù)庫(kù)
  2. 適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)

Hbase的特點(diǎn)

1.采用稀疏列式存儲(chǔ)如捅,節(jié)約存儲(chǔ)空間
2.可以自動(dòng)切分?jǐn)?shù)據(jù)肋乍,能夠水平拓展
3.可以提供高并發(fā)鹅颊,低延遲的讀寫(xiě)操作

缺點(diǎn)
不支持豐富的條件篩選,只能根據(jù)rowkey進(jìn)行g(shù)et或者scan讀取

Hbase架構(gòu)

Client

hbase的訪問(wèn)客戶端墓造,可以做一些本地緩存堪伍,來(lái)加快對(duì)hbase集群的訪問(wèn),如 region的位置信息

HMaster

負(fù)責(zé)HRegionServer的負(fù)載均衡觅闽,給HRegionServier分配Region帝雇。client讀取數(shù)據(jù)不經(jīng)過(guò)HMaster

HRegionServer

管理Region蛉拙,負(fù)責(zé)Region的切分和合并

HRegion

Table在行的方向上分割為多個(gè)HRegion尸闸,HRegion是HBase中分布式存儲(chǔ)和負(fù)載均衡的最小單元,即不同的HRegion可以分別在不同的HRegionServer上,但同一個(gè)HRegion是不會(huì)拆分到多個(gè)HRegionServer上的吮廉。HRegion按大小分割苞尝,每個(gè)表一般只有一個(gè)HRegion,隨著數(shù)據(jù)不斷插入表宦芦,HRegion不斷增大宙址,當(dāng)HRegion的某個(gè)列簇達(dá)到一個(gè)閥值(默認(rèn)256M)時(shí)就會(huì)分成兩個(gè)新的HRegion。

Store

Region雖然是分布式存儲(chǔ)的最小單元调卑,但并不是存儲(chǔ)的最小單元抡砂。Region由一個(gè)或者多個(gè)Store組成,每個(gè)store保存一個(gè)columns family恬涧;每個(gè)Strore又由一個(gè)memStore和0至多個(gè)StoreFile組成注益,StoreFile包含HFile;memStore存儲(chǔ)在內(nèi)存中气破,StoreFile存儲(chǔ)在HDFS上(數(shù)據(jù)寫(xiě)入先寫(xiě)memStore聊浅,當(dāng)memStore超過(guò)閥值(默認(rèn)64MB),則會(huì)刷入以StoreFile磁盤(pán))现使。

Zookeeper

zk的引入低匙,第一防止HMaster單點(diǎn)故障。另外還作為存儲(chǔ)碳锈,保存-Root- 的HRegionServer位置顽冶。

物理架構(gòu)

HBase容錯(cuò)性

Master容錯(cuò):Zookeeper重新選擇一個(gè)新的Master

  • 無(wú)Master過(guò)程中,數(shù)據(jù)讀取仍照常進(jìn)行售碳;
  • 無(wú)master過(guò)程中强重,region切分、負(fù)載均衡等無(wú)法進(jìn)行贸人;

RegionServer容錯(cuò):定時(shí)向Zookeeper匯報(bào)心跳间景,如果一旦時(shí)間內(nèi)未出現(xiàn)心跳,Master將該RegionServer上的Region重新分配到其他RegionServer上艺智,失效服務(wù)器上“預(yù)寫(xiě)”日志由主服務(wù)器進(jìn)行分割并派送給新的RegionServer

Zookeeper容錯(cuò):
Zookeeper是一個(gè)可靠地服務(wù)倘要,一般配置3或5個(gè)Zookeeper實(shí)例

HBase寫(xiě)入


每個(gè)HRegionServer中都有一個(gè)HLog對(duì)象,HLog是一個(gè)實(shí)現(xiàn)Write Ahead Log的類十拣,在每次用戶操作寫(xiě)入MemStore的同時(shí)封拧,也會(huì)寫(xiě)一份數(shù)據(jù)到HLog文件中(HLog文件格式見(jiàn)后續(xù)),HLog文件定期會(huì)滾動(dòng)出新的夭问,并刪除舊的文件(已持久化到StoreFile中的數(shù)據(jù))泽西。當(dāng)HRegionServer意外終止后,HMaster會(huì)通過(guò)Zookeeper感知到缰趋,HMaster首先會(huì)處理遺留的 HLog文件捧杉,將其中不同Region的Log數(shù)據(jù)進(jìn)行拆分陕见,分別放到相應(yīng)region的目錄下,然后再將失效的region重新分配糠溜,領(lǐng)取 到這些region的HRegionServer在Load Region的過(guò)程中淳玩,會(huì)發(fā)現(xiàn)有歷史HLog需要處理直撤,因此會(huì)Replay HLog中的數(shù)據(jù)到MemStore中非竿,然后flush到StoreFiles,完成數(shù)據(jù)恢復(fù)

HBase讀取

讀數(shù)據(jù)的關(guān)鍵是定位Region所在的RegionServer谋竖,數(shù)據(jù)的RegionServer如果被定位過(guò)红柱,會(huì)緩存到client端。

HBase里有兩個(gè)特殊表分別是 -ROOT-.META.
-ROOT-
表包含.META.表所在的region列表蓖乘,該Region永不拆分锤悄,只有一個(gè)。

.META.
表包含所有的用戶表對(duì)應(yīng)的region的位置信息嘉抒。

定位RegionServer
ZooKeeper--> -ROOT-(單Region)--> .META.--> 用戶表
ZK的結(jié)構(gòu)如下

整個(gè)過(guò)程如下


Hbase使用總結(jié)

1.rowKey 必須盡量的分散零聚,避免數(shù)據(jù)傾斜到單個(gè)Region節(jié)點(diǎn)。

  1. 自增id開(kāi)頭的些侍,一定要 reverse 反轉(zhuǎn)一下
  2. 羅列出查詢場(chǎng)景隶症,看看rowkey是否能滿足查詢需要
  3. scan查詢,默認(rèn)一次只返回100條數(shù)據(jù)岗宣,如果需要返回的更多蚂会,需要設(shè)置cache參數(shù)
  4. mutliGet注意控制 rowkey數(shù)量,針對(duì)rt設(shè)置一個(gè)合理的查詢上限

參考文章
https://cloud.tencent.com/developer/article/1018571
http://www.reibang.com/p/3832ae37fac4
http://www.uml.org.cn/bigdata/201810181.asp
官方
http://blog.zahoor.in/2012/08/hbase-hmaster-architecture/
http://hbase.apache.org/book.html#regionserver_splitting_implementation

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耗式,一起剝皮案震驚了整個(gè)濱河市胁住,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刊咳,老刑警劉巖彪见,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異娱挨,居然都是意外死亡余指,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)让蕾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浪规,“玉大人,你說(shuō)我怎么就攤上這事探孝∷裥觯” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵顿颅,是天一觀的道長(zhǎng)缸濒。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么庇配? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任斩跌,我火速辦了婚禮,結(jié)果婚禮上捞慌,老公的妹妹穿的比我還像新娘耀鸦。我一直安慰自己,他們只是感情好啸澡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布袖订。 她就那樣靜靜地躺著,像睡著了一般嗅虏。 火紅的嫁衣襯著肌膚如雪洛姑。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天皮服,我揣著相機(jī)與錄音楞艾,去河邊找鬼。 笑死龄广,一個(gè)胖子當(dāng)著我的面吹牛硫眯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜀细,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼舟铜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了奠衔?” 一聲冷哼從身側(cè)響起谆刨,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎归斤,沒(méi)想到半個(gè)月后痊夭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脏里,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年她我,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迫横。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡番舆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出矾踱,到底是詐尸還是另有隱情恨狈,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布呛讲,位于F島的核電站禾怠,受9級(jí)特大地震影響返奉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吗氏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一芽偏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弦讽,春花似錦污尉、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)等太。三九已至捂齐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缩抡,已是汗流浹背奠宜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瞻想,地道東北人压真。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蘑险,于是被迫代替她去往敵國(guó)和親滴肿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 參考:http://www.reibang.com/p/569106a3008f 最近在逐步跟進(jìn)Hbase的相關(guān)...
    博弈史密斯閱讀 855評(píng)論 1 1
  • 本文首先簡(jiǎn)單介紹了HBase,然后重點(diǎn)講述了HBase的高并發(fā)和實(shí)時(shí)處理數(shù)據(jù) 佃迄、HBase數(shù)據(jù)模型泼差、HBase物理...
    達(dá)微閱讀 2,735評(píng)論 1 13
  • 最近在逐步跟進(jìn)Hbase的相關(guān)工作,由于之前對(duì)Hbase并不怎么了解呵俏,因此系統(tǒng)地學(xué)習(xí)了下Hbase堆缘,為了加深對(duì)Hb...
    飛鴻無(wú)痕閱讀 50,226評(píng)論 19 272
  • 一、簡(jiǎn)介 Hbase:全名Hadoop DataBase,是一種開(kāi)源的,可伸縮的慎颗,嚴(yán)格一致性(并非最終一致性)的分...
    菜鳥(niǎo)小玄閱讀 2,388評(píng)論 0 12
  • 簡(jiǎn)介 HBase是高可靠性银酗,高性能,面向列呻此,可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Serve...
    九世的貓閱讀 2,192評(píng)論 1 6