Hbase學(xué)習(xí)筆記

1躬存、Hbase簡(jiǎn)介

Hbase(Hadoop Database的簡(jiǎn)稱(chēng))是分布式、面向列的開(kāi)源數(shù)據(jù)庫(kù)(其實(shí)準(zhǔn)確的說(shuō)是面向列族NoSQL非關(guān)系型數(shù)據(jù)庫(kù))困介。

HDFS為Hbase提供可靠的底層數(shù)據(jù)存儲(chǔ)服務(wù)姐刁,MapReduce為Hbase提供高性能的計(jì)算能力,Zookeeper為Hbase提供穩(wěn)定服務(wù)和Failover機(jī)制贿肩,其實(shí)也可以說(shuō)Hbase是一個(gè)通過(guò)大量廉價(jià)的機(jī)器解決海量數(shù)據(jù)的高速存儲(chǔ)和讀取的分布式數(shù)據(jù)庫(kù)解決方案峦椰。

HBase 并不是足夠快,只是數(shù)據(jù)量很大的時(shí)候慢的不明顯尸曼,我們一探究竟们何。

2、Hbase存儲(chǔ)結(jié)構(gòu)

先明確一下基礎(chǔ)概念:

  • Row Key:格式為字符數(shù)組控轿,是表中每條記錄的“主鍵”冤竹,方便快速查找。Table中所有行都按照row key排列茬射,因此row key的設(shè)計(jì)非常重要鹦蠕。
  • Column Family:列族,擁有一個(gè)名稱(chēng)(string)在抛,包含一個(gè)或者多個(gè)相關(guān)列钟病。每個(gè)列族存儲(chǔ)在HDFS上的一個(gè)單獨(dú)文件中。
  • Column:屬于某一個(gè)列族刚梭,列名定義為family:qualifier肠阱,其中qualifier可以是任意的字符串。每個(gè)column family可以有上百萬(wàn)個(gè)columns朴读,可以以此設(shè)計(jì)出精妙的存儲(chǔ)模型屹徘。
  • TimeStamp:類(lèi)型為L(zhǎng)ong,默認(rèn)值是系統(tǒng)時(shí)間戳衅金,可由用戶(hù)自定義噪伊。用于標(biāo)識(shí)數(shù)據(jù)的不同版本,每條數(shù)據(jù)寫(xiě)入時(shí)如果不指定時(shí)間戳氮唯,系統(tǒng)會(huì)自動(dòng)添加為其寫(xiě)入 HBase 的時(shí)間鉴吹。并且讀取數(shù)據(jù)的時(shí)候一般只拿出數(shù)據(jù)的Type符合,時(shí)間戳最新的數(shù)據(jù)惩琉。之所以按照Type取數(shù)據(jù)是因?yàn)镠DFS支持增刪查豆励,但不支持改。
  • Type:數(shù)據(jù)對(duì)應(yīng)的操作類(lèi)型琳水,當(dāng)你新增/修改一個(gè)單元格的時(shí)候肆糕,HBase 在 HDFS 上新增一條Put類(lèi)型數(shù)據(jù)般堆,版本號(hào)增大。當(dāng)你刪除一個(gè)單元格的時(shí)候诚啃,HBase 還是新增一條數(shù)據(jù)淮摔,只是這條數(shù)據(jù)沒(méi)有 value,類(lèi)型為 DELETE始赎,這條數(shù)據(jù)叫做墓碑標(biāo)記(Tombstone)和橙。真正刪除發(fā)生在Hbase每間隔一段時(shí)間都會(huì)進(jìn)行的合并(Compaction)的時(shí)候。
  • StoreFile:一個(gè)Store包含了一個(gè)MemStore和0個(gè)或多個(gè)StoreFile造垛。其中MemStroe是一個(gè)內(nèi)存數(shù)據(jù)結(jié)構(gòu)魔招,StoreFile是文件系統(tǒng)級(jí)別的數(shù)據(jù)結(jié)構(gòu)。Store是由Region去管理的五辽,用于維護(hù)列族的數(shù)據(jù)办斑。 對(duì)于一個(gè)HBase的表,設(shè)計(jì)了幾個(gè)列族杆逗,那么對(duì)于任何一個(gè)Region而言就會(huì)有幾個(gè)Store乡翅。這也是HBase被稱(chēng)為列族式數(shù)據(jù)庫(kù)的原因。 同時(shí)HBase會(huì)以Store大小來(lái)判斷罪郊,是否需要去切分Region蠕蚜。

2.1邏輯結(jié)構(gòu)

邏輯結(jié)構(gòu)看起來(lái)就像一張關(guān)系數(shù)據(jù)庫(kù)中的普通表,實(shí)際中我們也會(huì)以此進(jìn)行表設(shè)計(jì)悔橄。

Hbase邏輯結(jié)構(gòu)

2.2物理存儲(chǔ)結(jié)構(gòu)

最基本的存儲(chǔ)單位是列(column)靶累,一個(gè)列或者多個(gè)列形成一行(row)。傳統(tǒng)數(shù)據(jù)庫(kù)是嚴(yán)格的行列對(duì)齊癣疟。但是在 HBase 中挣柬,行跟行的列可以完全不一樣,這個(gè)行的數(shù)據(jù)跟另外一個(gè)行的數(shù)據(jù)也可以存儲(chǔ)在不同的機(jī)器上睛挚,甚至同一行內(nèi)的列也可以存儲(chǔ)在完全不同的機(jī)器上凛忿。 HBase 每個(gè)行(row)都擁有唯一的行鍵(row key)來(lái)標(biāo)定這個(gè)行的唯一性。每個(gè)列都有多個(gè)版本竞川,多個(gè)版本的值都存在單元格(cell)中。

Hbase物理存儲(chǔ)結(jié)構(gòu)

3叁熔、RowKey 的設(shè)計(jì)原則

Rowkey的概念和mysql中的主鍵是完全一樣的委乌,Hbase使用Rowkey來(lái)唯一的區(qū)分某一行的數(shù)據(jù)。

  • 唯一原則:RowKey 必須在設(shè)計(jì)上保證其唯一性荣回,RowKey 是按照字典順序排序存儲(chǔ)的遭贸,因此設(shè)計(jì) RowKey 時(shí)可以將將經(jīng)常讀取的數(shù)據(jù)存儲(chǔ)到一塊。
  • 長(zhǎng)度原則:二進(jìn)制碼流RowKey 最大長(zhǎng)度 64Kb心软,實(shí)際應(yīng)用中一般為 10-100bytes疆拘,以 byte[] 形式保存迟杂,一般設(shè)計(jì)定長(zhǎng)恼布。建議越短越好,因?yàn)镠File是按照KV存儲(chǔ)的Key太大浪費(fèi)空間踏堡。
  • 散列原則:RowKey 在設(shè)計(jì)時(shí)候要盡可能的實(shí)現(xiàn)可以將數(shù)據(jù)均衡的分布在每個(gè) RegionServer 上。

4咒劲、常用命令

  • 查看當(dāng)前數(shù)據(jù)庫(kù)表/命名空間
list
list_namespace
  • 創(chuàng)建表
create "employee","info"
  • 查看表結(jié)構(gòu)
describe '表名'
  • 插入數(shù)據(jù)
    格式為: 表名 顷蟆,rowkey名,列簇名:字段名腐魂,字段值
put "employee","row_key1","persional_info:name","張三"
put "employee","row_key1","persional_info:city","北京"
  • 查看表數(shù)據(jù)(limit限制數(shù)量)
scan 'employee',LIMIT => 1
  • 根據(jù)rowKey查詢(xún)數(shù)據(jù)
get 'employee','row_key1'

參考文檔

Apache Hbase Reference Guide
Hbase—學(xué)習(xí)筆記

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末帐偎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蛔屹,更是在濱河造成了極大的恐慌削樊,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兔毒,死亡現(xiàn)場(chǎng)離奇詭異漫贞,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)眼刃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)绕辖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人擂红,你說(shuō)我怎么就攤上這事仪际。” “怎么了昵骤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵树碱,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我变秦,道長(zhǎng)成榜,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任蹦玫,我火速辦了婚禮赎婚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘樱溉。我一直安慰自己挣输,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布福贞。 她就那樣靜靜地躺著撩嚼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上完丽,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天恋技,我揣著相機(jī)與錄音,去河邊找鬼逻族。 笑死蜻底,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的瓷耙。 我是一名探鬼主播朱躺,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼搁痛!你這毒婦竟也來(lái)了长搀?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鸡典,失蹤者是張志新(化名)和其女友劉穎源请,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體彻况,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谁尸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纽甘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片良蛮。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖悍赢,靈堂內(nèi)的尸體忽然破棺而出决瞳,到底是詐尸還是另有隱情,我是刑警寧澤左权,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布皮胡,位于F島的核電站,受9級(jí)特大地震影響赏迟,放射性物質(zhì)發(fā)生泄漏屡贺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一锌杀、第九天 我趴在偏房一處隱蔽的房頂上張望甩栈。 院中可真熱鬧,春花似錦糕再、人聲如沸谤职。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春蒿柳,著一層夾襖步出監(jiān)牢的瞬間饶套,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工垒探, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妓蛮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓圾叼,卻偏偏與公主長(zhǎng)得像蛤克,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子夷蚊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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

  • 一构挤、簡(jiǎn)介 Hbase:全名Hadoop DataBase,是一種開(kāi)源的惕鼓,可伸縮的筋现,嚴(yán)格一致性(并非最終一致性)的分...
    菜鳥(niǎo)小玄閱讀 2,388評(píng)論 0 12
  • 在對(duì)HBase進(jìn)行操作之前,首先學(xué)習(xí)一下HBase的基礎(chǔ)架構(gòu)和運(yùn)行原理箱歧。這里講解了 HBase 在大數(shù)據(jù)生態(tài)圈中的...
    卡卡xx閱讀 7,257評(píng)論 1 2
  • 最近使用HBase存儲(chǔ)數(shù)據(jù)比較多矾飞,看了一些資料,這里記錄一下筆記呀邢。HBase是Google開(kāi)源項(xiàng)目bigtable...
    猿鹿說(shuō)閱讀 1,322評(píng)論 0 1
  • HBase Architectural Components(HBase架構(gòu)組件) HBase架構(gòu)也是主從架構(gòu)洒沦,由...
    陌上疏影涼閱讀 2,397評(píng)論 0 7
  • 本文是對(duì)Hbase組件的一個(gè)學(xué)習(xí)總結(jié),共包括如下章節(jié)的內(nèi)容: Hbase是什么 Hbase的數(shù)據(jù)模型 Hbase體...
    我是老薛閱讀 1,668評(píng)論 1 10