hadoop筆記6--HBase簡介

HBase是Apache基金會的一個項目垦藏,是一個分布式可擴(kuò)展的NoSQL數(shù)據(jù)庫梆暖,提供了對結(jié)構(gòu)化、半結(jié)構(gòu)化掂骏、甚至非結(jié)構(gòu)化大數(shù)據(jù)的實(shí)時讀寫和隨機(jī)訪問能力轰驳。

要說HBase在Hadoop中的地位,簡單來說就是:

HBase之于HDFS就類似于數(shù)據(jù)庫之于文件系統(tǒng)。

這里就來簡單介紹一下HBase级解。

首先呢冒黑,先來看看我們用HBase的功能:

首先它是Hadoop的數(shù)據(jù)庫,能夠進(jìn)行存儲數(shù)據(jù)和檢索數(shù)據(jù)勤哗。
與關(guān)系型數(shù)據(jù)庫MySQL那些相比呢抡爹,它能夠存儲上億級的海量數(shù)據(jù),而且在海量數(shù)據(jù)上檢索速度能達(dá)到準(zhǔn)實(shí)時芒划,秒級別冬竟。
它是基于HDFS的,因此HDFS的優(yōu)勢它都擁有腊状,比如數(shù)據(jù)安全性等诱咏。

和Hive相比,Hive主要是基于mapreduce的缴挖,通過類SQL語句分析數(shù)據(jù)用的袋狞;而HBase主要就是檢索數(shù)據(jù)用了。

HBase表中的數(shù)據(jù)可以進(jìn)行快速查詢映屋,關(guān)鍵在于表中的rowkey的設(shè)計苟鸯。只要能快速的定位rowkey, 就能實(shí)現(xiàn)快速的查詢。

而且HBase的機(jī)制是數(shù)據(jù)先寫入到內(nèi)存中棚点,當(dāng)數(shù)據(jù)量達(dá)到一定的量(如128M)早处,再寫入磁盤中, 在內(nèi)存中瘫析,是不進(jìn)行數(shù)據(jù)的更新或合并操作的砌梆,只增加數(shù)據(jù),這使得用戶的寫操作只要進(jìn)入內(nèi)存中就可以立即返回贬循,因此可以進(jìn)行實(shí)時查詢咸包。

借助網(wǎng)上看到的一幅圖來表示Hadoop EcoSystem中的各層系統(tǒng):

Hadoop Ecosystem

其中,HBase位于結(jié)構(gòu)化存儲層杖虾,Hadoop HDFS為HBase提供了高可靠性的底層存儲支持烂瘫,Hadoop MapReduce為HBase提供了高性能的計算能力,Zookeeper為HBase提供了穩(wěn)定服務(wù)和failover機(jī)制奇适。

另外坟比,Pig和Hive還為HBase提供了高層語言支持,使得在HBase上進(jìn)行數(shù)據(jù)統(tǒng)計處理變的非常簡單嚷往。 Sqoop則為HBase提供了方便的RDBMS數(shù)據(jù)導(dǎo)入功能葛账,使得傳統(tǒng)數(shù)據(jù)庫數(shù)據(jù)向HBase中遷移變的非常方便。

先不看其他的東西皮仁,現(xiàn)在先看看HBase作為數(shù)據(jù)庫長的是什么樣子注竿。

HBase的數(shù)據(jù)模型

我們就先來看看HBase的基本數(shù)據(jù)模型茄茁。HBase表示一個分布式多維表,在數(shù)據(jù)模型定義上是一個3元組:{行關(guān)鍵字巩割,列族和列名裙顽,時間戳}。HBase通過它們來進(jìn)行索引和查詢定位宣谈。

下面是一個例子:


HBase表的示例

在HDFS存儲中愈犹,上表其實(shí)對應(yīng)的是一組鍵值對,比如key3行CompanyInfo闻丑、Name下t2時間戳下的數(shù)值:company2漩怎,存儲時的完整鍵值對為:

{key3,CompanyInfo,Name,t2}-->company2

也就是說HBase中并不存在行列這樣的概念,在實(shí)現(xiàn)時只認(rèn)為存在鍵值對這樣的概念嗦嗡。那個value實(shí)際上是以byte數(shù)組的形式存儲勋锤。

1.行關(guān)鍵字(row key)
HBase一張表可以有上億行記錄,每一行都是由一個行關(guān)鍵字來標(biāo)識侥祭。表中的記錄默認(rèn)按照行關(guān)鍵字升序排序叁执。
2.列族(Column Family)和列名(Column Name)
HBase每張表都有一個或多個列族,而列族相當(dāng)于一個容器矮冬,每個列都必須歸屬于某個列族谈宛。一個列族中可以由任意多個列組成,列族支持動態(tài)擴(kuò)展胎署,無需預(yù)先定義列的數(shù)量以及類型吆录,所有列均以二進(jìn)制格式存儲,用戶需要自行進(jìn)行類型轉(zhuǎn)換琼牧。所有的列族成員的前綴是相同的恢筝,例如“abc:a1”和“abc:a2”兩個列都屬于abc這個列族。
3.時間戳(Timestamp)
每次數(shù)據(jù)操作對應(yīng)的時間戳巨坊,可以看作是數(shù)據(jù)的版本號撬槽。
</br>
而上面三者合起來就構(gòu)成了一個單元格(Cell):這個是表存儲數(shù)據(jù)的單元。由{行健抱究,列(列族:列名)恢氯,時間戳}唯一確定带斑。

HBase的基本構(gòu)架

接下來看看HBase的基本組成結(jié)構(gòu)鼓寺。

HBase的基本構(gòu)架

HBase也是分布式的集群,因此還是會分為主節(jié)點(diǎn)和從節(jié)點(diǎn)勋磕,而這兩者就是HBase的主要兩個部分:HBase Master(作主節(jié)點(diǎn))和HBase Region Server(做從節(jié)點(diǎn))妈候。

Master是HBase集群的主控服務(wù)器,負(fù)責(zé)集群狀態(tài)的管理維護(hù)挂滓;Region Server是HBase具體對外提供服務(wù)的進(jìn)程苦银,就是主要負(fù)責(zé)數(shù)據(jù)的檢索等。

另外Hbase集群由zookeeper來監(jiān)控。在偽分布模式下Hbase會開啟自帶的zookeeper幔虏。

再來看一幅HBase總體組成結(jié)構(gòu)圖:

總體結(jié)構(gòu)圖

首先纺念,HBase中的所有數(shù)據(jù)文件都存儲在Hadoop HDFS文件系統(tǒng)上。主要包括兩種文件類型:

  1. HFile想括, HBase中KeyValue數(shù)據(jù)的存儲格式陷谱。
  2. HLogFile,HBase中WAL(Write Ahead Log) 的存儲格式瑟蜈,物理上是Hadoop的Sequence File烟逊。

接著,可以看到铺根,在一個Region server cluster里面有多個Region Server宪躯,其中Region Server又包含了很多Region,而Region是HBase調(diào)度的基本單位位迂,多個Region能組成一個真正的Table访雪,如下圖:

Table

而每一個Region內(nèi)部里面又有一系列Store。每個Store里面又是由memStore和StoreFile兩個部分組成囤官,其中StoreFile是最終的數(shù)據(jù)冬阳,它是對HFile的輕量級包裝,存儲到HDFS中党饮;而memStore不論在Store是否有真實(shí)數(shù)據(jù)都將會有肝陪,在內(nèi)存當(dāng)中。

HBase可以看做HDFS文件系統(tǒng)上的數(shù)據(jù)庫刑顺,有著海量數(shù)據(jù)存儲氯窍、快速隨機(jī)訪問和大量寫操作的應(yīng)用的優(yōu)點(diǎn),常用在互聯(lián)網(wǎng)搜索引擎數(shù)據(jù)存儲蹲堂、審計日志系統(tǒng)狼讨、實(shí)時系統(tǒng)、內(nèi)容服務(wù)系統(tǒng)當(dāng)中柒竞。

以上簡單介紹了HBase政供,下一篇準(zhǔn)備看看HBase的安裝和它的基本用法。

(PS:以上的圖示均來自《深入理解大數(shù)據(jù)》一書朽基。)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末布隔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子稼虎,更是在濱河造成了極大的恐慌衅檀,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霎俩,死亡現(xiàn)場離奇詭異哀军,居然都是意外死亡沉眶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門杉适,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谎倔,“玉大人,你說我怎么就攤上這事猿推〈兀” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵彤守,是天一觀的道長毯侦。 經(jīng)常有香客問我,道長具垫,這世上最難降的妖魔是什么侈离? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮筝蚕,結(jié)果婚禮上卦碾,老公的妹妹穿的比我還像新娘。我一直安慰自己起宽,他們只是感情好洲胖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坯沪,像睡著了一般绿映。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腐晾,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天叉弦,我揣著相機(jī)與錄音,去河邊找鬼藻糖。 笑死淹冰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的巨柒。 我是一名探鬼主播樱拴,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼洋满!你這毒婦竟也來了晶乔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤芦岂,失蹤者是張志新(化名)和其女友劉穎瘪弓,沒想到半個月后垫蛆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體禽最,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡腺怯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了川无。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呛占。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖懦趋,靈堂內(nèi)的尸體忽然破棺而出晾虑,到底是詐尸還是另有隱情,我是刑警寧澤仅叫,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布帜篇,位于F島的核電站,受9級特大地震影響诫咱,放射性物質(zhì)發(fā)生泄漏笙隙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一坎缭、第九天 我趴在偏房一處隱蔽的房頂上張望竟痰。 院中可真熱鬧,春花似錦掏呼、人聲如沸坏快。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莽鸿。三九已至,卻和暖如春拾给,著一層夾襖步出監(jiān)牢的瞬間富拗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工鸣戴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啃沪,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓窄锅,卻偏偏與公主長得像创千,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子入偷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

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

  • 最近在逐步跟進(jìn)Hbase的相關(guān)工作追驴,由于之前對Hbase并不怎么了解,因此系統(tǒng)地學(xué)習(xí)了下Hbase疏之,為了加深對Hb...
    飛鴻無痕閱讀 50,224評論 19 272
  • 1. HBase介紹殿雪,Hbase是什么? HBase -- Hadoop Database 锋爪,是一個高可靠丙曙、高性能...
    奉先閱讀 3,744評論 1 36
  • HBase那些事 @(大數(shù)據(jù)工程學(xué)院)[HBase, Hadoop, 優(yōu)化, HadoopChen, hbase]...
    分癡閱讀 3,939評論 3 17
  • Hbase架構(gòu)與原理 HBase是一個分布式的爸业、面向列的開源數(shù)據(jù)庫,該技術(shù)來源于 Fay Chang所撰寫的Goo...
    全能程序猿閱讀 86,296評論 2 37
  • Hadoop 2.x產(chǎn)生背景 Hadoop 1.0種的HDFS和MR在高可用亏镰、擴(kuò)展性等方面存在問題扯旷; HDFS存在...
    陳半仙兒閱讀 615評論 0 4