hadoop之Hbase

Hbase特點(diǎn):

海量存儲:適合PB級別的海量數(shù)據(jù)昼接,,hbase有良好的擴(kuò)展性
列式存儲:根據(jù)列族來存儲數(shù)據(jù)的
極易擴(kuò)展:
高并發(fā):
稀疏存儲:數(shù)據(jù)為空的情況下不占用存儲空間

Hbase架構(gòu)圖:

4.png

Hbase通過zk來做master的高可用疮方,regionServer的監(jiān)控、元數(shù)據(jù)的入口以及集群配置的維護(hù),通過zk來保證只有一個(gè)master在運(yùn)行朽缴,通過競爭機(jī)制產(chǎn)生master沧侥;zk來監(jiān)控regionserver狀態(tài)可霎,regionserver有異常的時(shí)候,通過回調(diào)的形式通知master regionserver上下線的信息宴杀;通過zk存儲元數(shù)據(jù)的同一入口地址啥纸;
Hmaster:為regionserver分配region;維護(hù)整個(gè)集群的負(fù)載均衡婴氮;維護(hù)集群的元數(shù)據(jù)信息斯棒;發(fā)現(xiàn)失效的region盾致,將失效的region分配到正常的regionserver上;regionserver失效時(shí)荣暮,協(xié)調(diào)對應(yīng)Hlog的拆分庭惜。HregionServer:處理用戶的讀寫請求,是真正執(zhí)行讀寫的節(jié)點(diǎn)穗酥,包括:管理master為其分配的region护赊;處理來自客戶端的讀寫請求;負(fù)責(zé)和底層HDFS的交互砾跃,存儲數(shù)據(jù)到HDFS骏啰;負(fù)責(zé)region變大以后的拆分;負(fù)責(zé)Storefile的合并工作抽高;
Hlog:編輯日志判耕,通過Hlog回滾
Region:相當(dāng)于表(一個(gè)或者多個(gè)表),region可以進(jìn)行切分的翘骂,數(shù)據(jù)量較大時(shí)壁熄,會將region進(jìn)行切分(實(shí)現(xiàn)負(fù)載均衡),會有多個(gè)region碳竟,
Store:相當(dāng)于列族草丧,一個(gè)region中可以有多個(gè)列族,列不能拋開列族單獨(dú)存在
Store file:在磁盤中存儲的文件莹桅,以Hfile的存儲格式存儲昌执,以Hfile存在HDFS上,

Rowkey的設(shè)計(jì)原則:

Rowkey的長度可以是任意的字符串诈泼,最大長度是64Kb,在實(shí)際中一般為10-100個(gè)字節(jié)懂拾,一般來說越短越好,hbase會將部分?jǐn)?shù)據(jù)加載到內(nèi)存中厂汗,rowkey過長委粉,內(nèi)存的有效利用率會下降

Rowkey散列原則:目的是使數(shù)據(jù)均衡分布,各個(gè)regionserver負(fù)載均衡

Rowkey唯一原則:保證唯一性娶桦,rowkey是按照字典順序排序存儲的

Hbase數(shù)據(jù)結(jié)構(gòu):

Rowkey:用來檢索記錄的主鍵贾节,訪問hbase tabe 中的行有三種方式:單個(gè)rk訪問;掃描rk的range(正則)衷畦;全表掃描栗涂;

Column Family:列族,是表的一部分祈争,必須在使用表之前定義斤程,列名都以列族為前綴。

Cell:相當(dāng)于一個(gè)單元格,又行鍵忿墅,列名扁藕,版本唯一確定。Cell中的數(shù)據(jù)是沒有類型的疚脐,全部以字節(jié)碼的形式存儲亿柑,

Timestamp:版本通過時(shí)間戳來索引,時(shí)間戳的類型是64位整型棍弄,每個(gè)cell中望薄,不同版本的數(shù)據(jù)按照時(shí)間倒序排序,時(shí)間戳可以由用戶顯示的賦值呼畸,也可以取當(dāng)前系統(tǒng)時(shí)間

Hbase讀數(shù)據(jù)流程:

5.png

Hbase寫數(shù)據(jù)流程:(不需要與磁盤交互痕支,所以快)

6.png

數(shù)據(jù)Flush過程:

當(dāng)MenStore數(shù)據(jù)達(dá)到閾值(默認(rèn)是128M,老版本64M)蛮原,將數(shù)據(jù)刷到磁盤卧须,將內(nèi)存中的數(shù)據(jù)刪除,同時(shí)刪除Hlog中的歷史數(shù)據(jù)瞬痘;

并將數(shù)據(jù)存儲到HDFS中故慈;

在Hlog中做標(biāo)記板熊;

【注 刷寫的觸發(fā)條件】

Regionserver超過堆內(nèi)存的40%會執(zhí)行刷寫框全;

Menstore中時(shí)間超過一個(gè)小時(shí);

Region的內(nèi)存超過128M的時(shí)候觸發(fā)干签,由master觸發(fā)津辩,由regionserver執(zhí)行

數(shù)據(jù)合并過程:

【注****合并觸發(fā)條件】

Hfile默認(rèn)7天合并一次;

Flush為hfile時(shí)容劳,超過3個(gè)hfile就會對這些文件進(jìn)行合并

Hive VS hbase:

Hive:是基于hadoop的一個(gè)數(shù)倉工具喘沿,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為數(shù)據(jù)庫表,并提供簡單的SQL查詢竭贩;hive本身不存儲和計(jì)算數(shù)據(jù)蚜印,完全依賴于HDFS和MR,hive用HDFS存儲留量,用MR進(jìn)行計(jì)算窄赋,hive是將SQL轉(zhuǎn)換成map-reduce程序;

Hbase:是hadoop的數(shù)據(jù)庫楼熄,是物理表忆绰,是一個(gè)菲關(guān)系型數(shù)據(jù)庫

聯(lián)系:

Hbase主要解決的是實(shí)時(shí)數(shù)據(jù)查詢問題,hive主要解決數(shù)據(jù)的處理和計(jì)算可岂,

在大數(shù)據(jù)架構(gòu)中错敢,hive和hbase是協(xié)作的關(guān)系,通過hive對原始數(shù)據(jù)的清洗缕粹,處理和計(jì)算稚茅,hive處理后的數(shù)據(jù)可存入hbase中纸淮,數(shù)據(jù)從hbase中檢索;

Hbase VS MySQL:

關(guān)系型數(shù)據(jù)庫:

優(yōu)點(diǎn):數(shù)據(jù)之間有關(guān)系亚享,進(jìn)行增刪改查很方便萎馅;

有事務(wù)操作,保證數(shù)據(jù)的完整性和一致性虹蒋;

缺點(diǎn):無法對海量數(shù)據(jù)進(jìn)行處理糜芳,適合一般量級的數(shù)據(jù);

Hbase:

優(yōu)點(diǎn):列是可以動態(tài)增加的魄衅,cell沒有數(shù)據(jù)時(shí)峭竣,是不占存儲空間的

Hbase自動進(jìn)行切分?jǐn)?shù)據(jù),能夠?qū)崿F(xiàn)負(fù)載均衡

缺點(diǎn):不能支持條件查詢晃虫,只能按照rowkey查詢

數(shù)據(jù)類型:hbase中只有字節(jié)碼類型皆撩,所有的類型都由用戶自己進(jìn)行處理,關(guān)系型數(shù)據(jù)庫中是有不同的數(shù)據(jù)類型的

數(shù)據(jù)操作:hbase只有簡單的增刪改查操作哲银,表與表之間是分離的扛吞,關(guān)系型數(shù)據(jù)庫有各種各樣的連接操作和函數(shù)處理

存儲模式:hbase是基于列族存儲的,存儲的數(shù)據(jù)量較大荆责,關(guān)系型數(shù)據(jù)庫是基于表格結(jié)構(gòu)和行模式存儲的滥比;

可伸展性:hbase是一個(gè)分布式數(shù)據(jù)庫,很容易擴(kuò)展存儲空間做院,而且容錯(cuò)性比較高

Hbase優(yōu)化:

高可用:hmaster負(fù)責(zé)監(jiān)控regionserver的生命周期盲泛,實(shí)現(xiàn)負(fù)載均衡,如果Hmaster掛掉了键耕,配置高可用 hmaster節(jié)點(diǎn)寺滚,所以這種不健康的狀態(tài)不會持續(xù)很長時(shí)間;

預(yù)分區(qū):提前將分區(qū)大致規(guī)劃好

Rowkey設(shè)計(jì):設(shè)計(jì)的目的是讓數(shù)據(jù)均勻的分布于region中屈雄,一定程度上防止數(shù)據(jù)傾斜村视,可以hash取值,

內(nèi)存優(yōu)化:提高堆內(nèi)存空間

為什么會有列族:

一行有若干列組成,若干列又構(gòu)成一個(gè)列族(column family)酒奶,這不僅有助于構(gòu)建數(shù)據(jù)的語義邊界或者局部邊界蚁孔,還有助于給他們設(shè)置某些特性(如壓縮),或者指示他們存貯在內(nèi)存中讥蟆,一個(gè)列族的所有列存貯在同一個(gè)底層的存儲文件中勒虾,這個(gè)存儲文件叫做HFile。?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瘸彤,一起剝皮案震驚了整個(gè)濱河市修然,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖愕宋,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玻靡,死亡現(xiàn)場離奇詭異,居然都是意外死亡中贝,警方通過查閱死者的電腦和手機(jī)囤捻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來邻寿,“玉大人蝎土,你說我怎么就攤上這事⌒宸瘢” “怎么了誊涯?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蒜撮。 經(jīng)常有香客問我暴构,道長,這世上最難降的妖魔是什么段磨? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任取逾,我火速辦了婚禮,結(jié)果婚禮上苹支,老公的妹妹穿的比我還像新娘砾隅。我一直安慰自己,他們只是感情好沐序,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布琉用。 她就那樣靜靜地躺著堕绩,像睡著了一般策幼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奴紧,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天特姐,我揣著相機(jī)與錄音,去河邊找鬼黍氮。 笑死唐含,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沫浆。 我是一名探鬼主播捷枯,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼专执!你這毒婦竟也來了淮捆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎攀痊,沒想到半個(gè)月后桐腌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苟径,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年案站,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棘街。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蟆盐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出遭殉,到底是詐尸還是另有隱情舱禽,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布恩沽,位于F島的核電站誊稚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏罗心。R本人自食惡果不足惜里伯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渤闷。 院中可真熱鬧疾瓮,春花似錦、人聲如沸飒箭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弦蹂。三九已至肩碟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凸椿,已是汗流浹背削祈。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脑漫,地道東北人髓抑。 一個(gè)月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像优幸,于是被迫代替她去往敵國和親吨拍。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

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

  • 一网杆、簡介 Hbase:全名Hadoop DataBase羹饰,是一種開源的握爷,可伸縮的,嚴(yán)格一致性(并非最終一致性)的分...
    菜鳥小玄閱讀 2,364評論 0 12
  • 比特科技: 存儲严里、數(shù)據(jù)庫新啼、大數(shù)據(jù)技術(shù) ? HBase原理和設(shè)計(jì) http://www.bitstech.net/...
    葡萄喃喃囈語閱讀 725評論 0 11
  • 1 HBase 概述 1.1 什么是 HBase? HBase 是一個(gè)高可靠性刹碾、高性能燥撞、面向列、可伸縮的分布式存儲...
    djm猿閱讀 271評論 0 0
  • 簡介 HBase —— Hadoop Database的簡稱迷帜,Google BigTable的另一種開源實(shí)現(xiàn)方式物舒,...
    編碼前線閱讀 276評論 0 0
  • 簡介 HBase —— Hadoop Database的簡稱,Google BigTable的另一種開源實(shí)現(xiàn)方式戏锹,...
    尼小摩閱讀 526評論 0 3