HBase是Google Bigtable的開(kāi)源實(shí)現(xiàn),它利用Hadoop HDFS作為其文件存儲(chǔ)系統(tǒng),利用Hadoop MapReduce來(lái)處理HBase中的海量數(shù)據(jù),利用Zookeeper作為協(xié)同服務(wù)。
1. 簡(jiǎn)介
HBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),源于google的一篇論文《bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)》。HBase是Google Bigtable的開(kāi)源實(shí)現(xiàn),它利用Hadoop HDFS作為其文件存儲(chǔ)系統(tǒng),利用Hadoop MapReduce來(lái)處理HBase中的海量數(shù)據(jù),利用Zookeeper作為協(xié)同服務(wù)。
2. HBase的表結(jié)構(gòu)
HBase以表的形式存儲(chǔ)數(shù)據(jù)。表有行和列組成。列劃分為若干個(gè)列族/列簇(column family)。
| Row Key | column-family1 | column-family2 | column-family3 |
| column1 | column2 | column1 | column2 | column3 | column1 |
| key1 | | | | | | |
| key2 | | | | | | |
| key3 |
如上圖所示,key1,key2,key3是三條記錄的唯一的row key值,column-family1,column-family2,column-family3是三個(gè)列族,每個(gè)列族下又包括幾列。比如column-family1這個(gè)列族下包括兩列,名字是column1和column2,t1:abc,t2:gdxdf是由row key1和column-family1-column1唯一確定的一個(gè)單元cell。這個(gè)cell中有兩個(gè)數(shù)據(jù),abc和gdxdf。兩個(gè)值的時(shí)間戳不一樣,分別是t1,t2, hbase會(huì)返回最新時(shí)間的值給請(qǐng)求者。
這些名詞的具體含義如下:
(1) Row Key
與nosql數(shù)據(jù)庫(kù)們一樣,row key是用來(lái)檢索記錄的主鍵。訪問(wèn)hbase table中的行,只有三種方式:
(1.1) 通過(guò)單個(gè)row key訪問(wèn)
(1.2) 通過(guò)row key的range
(1.3) 全表掃描
Row key行鍵 (Row key)可以是任意字符串(最大長(zhǎng)度是 64KB,實(shí)際應(yīng)用中長(zhǎng)度一般為 10-100bytes),在hbase內(nèi)部,row key保存為字節(jié)數(shù)組。
存儲(chǔ)時(shí),數(shù)據(jù)按照Row key的字典序(byte order)排序存儲(chǔ)。設(shè)計(jì)key時(shí),要充分排序存儲(chǔ)這個(gè)特性,將經(jīng)常一起讀取的行存儲(chǔ)放到一起。(位置相關(guān)性)
注意:
字典序?qū)nt排序的結(jié)果是1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,…,9,91,92,93,94,95,96,97,98,99。要保持整形的自然序,行鍵必須用0作左填充。
行的一次讀寫(xiě)是原子操作 (不論一次讀寫(xiě)多少列)。這個(gè)設(shè)計(jì)決策能夠使用戶很容易的理解程序在對(duì)同一個(gè)行進(jìn)行并發(fā)更新操作時(shí)的行為。
(2) 列族 column family
hbase表中的每個(gè)列,都?xì)w屬與某個(gè)列族。列族是表的chema的一部分(而列不是),必須在使用表之前定義。列名都以列族作為前綴。例如courses:history , courses:math 都屬于 courses 這個(gè)列族。
訪問(wèn)控制、磁盤(pán)和內(nèi)存的使用統(tǒng)計(jì)都是在列族層面進(jìn)行的。實(shí)際應(yīng)用中,列族上的控制權(quán)限能幫助我們管理不同類型的應(yīng)用:我們?cè)试S一些應(yīng)用可以添加新的基本數(shù)據(jù)、一些應(yīng)用可以讀取基本數(shù)據(jù)并創(chuàng)建繼承的列族、一些應(yīng)用則只允許瀏覽數(shù)據(jù)(甚至可能因?yàn)殡[私的原因不能瀏覽所有數(shù)據(jù))。
(3) 單元 Cell
HBase中通過(guò)row和columns確定的為一個(gè)存貯單元稱為cell。由{row key, column( =<family> + <label>), version} 唯一確定的單元。cell中的數(shù)據(jù)是沒(méi)有類型的,全部是字節(jié)碼形式存貯。
(4) 時(shí)間戳 timestamp
每個(gè)cell都保存著同一份數(shù)據(jù)的多個(gè)版本。版本通過(guò)時(shí)間戳來(lái)索引。時(shí)間戳的類型是 64位整型。時(shí)間戳可以由hbase(在數(shù)據(jù)寫(xiě)入時(shí)自動(dòng) )賦值,此時(shí)時(shí)間戳是精確到毫秒的當(dāng)前系統(tǒng)時(shí)間。時(shí)間戳也可以由客戶顯式賦值。如果應(yīng)用程序要避免數(shù)據(jù)版本沖突,就必須自己生成具有唯一性的時(shí)間戳。每個(gè)cell中,不同版本的數(shù)據(jù)按照時(shí)間倒序排序,即最新的數(shù)據(jù)排在最前面。
為了避免數(shù)據(jù)存在過(guò)多版本造成的的管理 (包括存貯和索引)負(fù)擔(dān),hbase提供了兩種數(shù)據(jù)版本回收方式。一是保存數(shù)據(jù)的最后n個(gè)版本,二是保存最近一段時(shí)間內(nèi)的版本(比如最近七天)。用戶可以針對(duì)每個(gè)列族進(jìn)行設(shè)置。
3. HBase shell的基本用法
hbase提供了一個(gè)shell的終端給用戶交互。使用命令hbase shell進(jìn)入命令界面。通過(guò)執(zhí)行 help可以看到命令的幫助信息。
以網(wǎng)上的一個(gè)學(xué)生成績(jī)表的例子來(lái)演示hbase的用法。
| name | grad | course |
| math | art |
| Tom | 5 | 97 | 87 |
| Jim | 4 | 89 | 80 |
這里grad對(duì)于表來(lái)說(shuō)是一個(gè)只有它自己的列族,course對(duì)于表來(lái)說(shuō)是一個(gè)有兩個(gè)列的列族,這個(gè)列族由兩個(gè)列組成math和art,當(dāng)然我們可以根據(jù)我們的需要在course中建立更多的列族,如computer,physics等相應(yīng)的列添加入course列族。
(1)建立一個(gè)表scores,有兩個(gè)列族grad和courese
復(fù)制代碼 代碼如下:
hbase(main):001:0> create ‘scores','grade', ‘course'
可以使用list命令來(lái)查看當(dāng)前HBase里有哪些表。使用describe命令來(lái)查看表結(jié)構(gòu)。(記得所有的表明、列名都需要加上引號(hào))
(2)按設(shè)計(jì)的表結(jié)構(gòu)插入值:
復(fù)制代碼 代碼如下:
put ‘scores','Tom','grade:','5′
put ‘scores','Tom','course:math','97′
put ‘scores','Tom','course:art','87′
put ‘scores','Jim','grade','4′
put ‘scores','Jim','course:','89′
put ‘scores','Jim','course:','80′
這樣表結(jié)構(gòu)就起來(lái)了,其實(shí)比較自由,列族里邊可以自由添加子列很方便。如果列族下沒(méi)有子列,加不加冒號(hào)都是可以的。
put命令比較簡(jiǎn)單,只有這一種用法:
hbase> put ‘t1′, ‘r1′, ‘c1′, ‘value', ts1
t1指表名,r1指行鍵名,c1指列名,value指單元格值。ts1指時(shí)間戳,一般都省略掉了。
(3)根據(jù)鍵值查詢數(shù)據(jù)
get ‘scores','Jim'
get ‘scores','Jim','grade'
可能你就發(fā)現(xiàn)規(guī)律了,HBase的shell操作,一個(gè)大概順序就是操作關(guān)鍵詞后跟表名,行名,列名這樣的一個(gè)順序,如果有其他條件再用花括號(hào)加上。
get有用法如下:
hbase> get ‘t1′, ‘r1′
hbase> get ‘t1′, ‘r1′, {TIMERANGE => [ts1, ts2]}
hbase> get ‘t1′, ‘r1′, {COLUMN => ‘c1′}
hbase> get ‘t1′, ‘r1′, {COLUMN => ['c1', 'c2', 'c3']}
hbase> get ‘t1′, ‘r1′, {COLUMN => ‘c1′, TIMESTAMP => ts1}
hbase> get ‘t1′, ‘r1′, {COLUMN => ‘c1′, TIMERANGE => [ts1, ts2], VERSIONS => 4}
hbase> get ‘t1′, ‘r1′, {COLUMN => ‘c1′, TIMESTAMP => ts1, VERSIONS => 4}
hbase> get ‘t1′, ‘r1′, ‘c1′
hbase> get ‘t1′, ‘r1′, ‘c1′, ‘c2′
hbase> get ‘t1′, ‘r1′, ['c1', 'c2']
(4)掃描所有數(shù)據(jù)
scan ‘scores'
也可以指定一些修飾詞:TIMERANGE, FILTER, LIMIT, STARTROW, STOPROW, TIMESTAMP, MAXLENGTH,or COLUMNS。沒(méi)任何修飾詞,就是上邊例句,就會(huì)顯示所有數(shù)據(jù)行。
例句如下:
復(fù)制代碼 代碼如下:
hbase> scan ‘.META.'
hbase> scan ‘.META.', {COLUMNS => ‘info:regioninfo'}
hbase> scan ‘t1′, {COLUMNS => ['c1', 'c2'], LIMIT => 10, STARTROW => ‘xyz'}
hbase> scan ‘t1′, {COLUMNS => ‘c1′, TIMERANGE => [1303668804, 1303668904]}
hbase> scan ‘t1′, {FILTER => “(PrefixFilter (‘row2′) AND (QualifierFilter (>=, ‘binary:xyz'))) AND (TimestampsFilter ( 123, 456))”}
hbase> scan ‘t1′, {FILTER => org.apache.hadoop.hbase.filter.ColumnPaginationFilter.new(1, 0)}
過(guò)濾器filter有兩種方法指出:
a. Using a filterString
www在线视频观看|
人人干视频在线|
成人xxxx|
欧美日韩亚洲一区二区|
国产精品天天看|
日本xxxxxx|
国产 日韩 欧美大片|
欧美国产精品v|
久久尤物电影视频在线观看|
亚洲精品一区二区三区蜜桃|
久久福利电影|
韩国午夜理伦三级不卡影院|
日本ー区在线视频|
日韩高清电影一区|
av小说在线观看|
日韩欧美一区二区在线观看|
国产精品熟女一区二区不卡|
自由的xxxx在线视频|
一本一道久久久a久久久精品91|
最新在线观看av|
在线免费观看高清视频色|
免费成人美女在线观看|
91免费高清视频|
www.午夜色|
6—12呦国产精品|
亚洲欧美日韩在线不卡|
免费在线看黄色片|
一区二区视频欧美|
亚洲精品久久久久久国|
日本aⅴ精品一区二区三区|
欧美日本免费|
日本视频在线一区|
红桃视频成人在线观看|
在线观看二区|
四虎影视成人精品国库在线观看|
最新中文字幕av专区|
中文字幕亚洲日本|
亚洲人挤奶视频|
可以看美女隐私的网站|
国产在线视频一区二区三区|
欧洲精品一区二区三区|
91精品久久久久久久久久另类|
91在线视频在线观看|
亚洲国产99精品国自产|
天堂网一区二区三区|
曰本女人与公拘交酡|
av一级二级|
国模娜娜一区二区三区|
午夜久久久久久久久久一区二区|
欧美不卡视频一区|
午夜男人视频在线观看|
巨胸大乳www视频免费观看|
日本天堂在线|
天天看天天色|
欧美videos大乳护士334|
久久久777精品电影网影网|
国产69精品久久久久777|
成年网站在线视频网站|
欧美日本三级|
成人三级视频在线观看一区二区|
第一区第二区在线|
无码人妻av免费一区二区三区|
日本不卡中文字幕|
麻豆理论在线观看|
性xxxx欧美老肥妇牲乱|
女人高潮一级片|
亚欧精品在线视频|
亚洲视频电影在线|
亚洲日本精品一区|
在线天堂www在线国语对白|
美州a亚洲一视本频v色道|
免费a级毛片永久免费|
欧美一级特黄视频|
狠狠色综合色综合网络|
色婷婷一区二区三区在线观看|
先锋男人资源站|
欧美日韩国产成人|
亚洲天堂日韩电影|
日韩欧美国产骚|
久久久99精品久久|
亚洲国产欧美91|
性欧美video视频另类|
天堂中文www在线|
99伊人成综合|
亚洲精品自产拍在线观看|
亚洲黄色在线观看视频|
91嫩草视频在线观看|
福利在线小视频|
噜噜噜91成人网|
欧美一级免费在线观看|
欧美在线se|
国产精品国产三级国产试看|
国产欧美精品一区|
日韩一区二区在线看片|
亚洲欧洲在线看|
91精品婷婷国产综合久久竹菊|
天堂在线视频网站|
91插插视频|
中文字幕精品一区二区三区在线|
欧美性猛交xxxx乱大交|
精品国产乱子伦|
91看片免费版|
国产成人在线播放视频|
日本肉体xxxx裸体xxx免费|
亚洲一区制服诱惑|
色悠久久久久综合先锋影音下载|
www.xxxx精品|
小小影院久久|
亚洲综合自拍一区|
超碰在线观看91|
国产精品私拍pans大尺度在线|
欧美 日韩 国产 在线观看|
亚洲精品免费av|
99久久亚洲一区二区三区青草|
中文字幕国产视频|
中文字幕成人在线视频|
91精品人妻一区二区三区果冻|
久久久999精品免费|
久久国产精品免费一区|
久久视频在线观看|
在线观看欧美精品|
在线观看黄网站免费继续|
好吊妞无缓冲视频观看|
成人国产亚洲欧美成人综合网|
久久先锋资源|
日本成人精品|
免费高潮视频95在线观看网站|
日本精品视频在线|
99国产在线视频|
久久精品日产第一区二区三区|
久久久999精品视频|
午夜影院日韩|
一区二区三区在线高清|
无码精品国产一区二区三区免费|
crdy在线观看欧美|
两个人看的免费完整在线观看|
亚洲一二三级电影|
免费黄在线观看|
国产亚洲精品久久久|
亚洲美女黄色片|
91天堂在线视频|
日韩精品乱码久久久久久|
熟女高潮一区二区三区|
亚洲第一区av|
91短视频在线|
欧美色图一区二区三区|
在线色视频网|
国产婷婷色一区二区三区四区|
国产精品二区视频|
高清国产一区二区三区|
免费欧美网站|
亚洲欧美日韩高清|
成人黄页在线观看|
91在线直播亚洲|
欧美性大战久久久久久久蜜臀|
亚洲国产成人va在线观看天堂|
亚洲一区 中文字幕|
成人蜜臀av电影|
亚洲一区二区三区sesese|
日韩精品五月天|
黄色网址网站|
日韩欧美亚洲在线|
日本xxxxxxxxx18|
中国 免费 av|
久久无码专区国产精品s|
懂色av一区二区夜夜嗨|
欧美人妇做爰xxxⅹ性高电影|
日韩新的三级电影|
大胸美女被爆操|
香蕉视频免费在线|
天天做天天爱天天高潮|
欧美喷水一区二区|
久久久www成人免费精品|
aⅴ色国产欧美|
香蕉视频黄色在线观看|
99免费精品在线观看|
奇米777影视成人四色|
亚洲一区3d动漫同人无遮挡|
午夜影院欧美|
国产青青在线视频|
丁香久久综合|
久久精品日韩欧美|
久久久久久久久久久久久久久久久久久久|
日本一区二区成人|
天海翼女教师无删减版电影|
开心九九激情九九欧美日韩精美视频电影|
视频一区二区中文字幕|
日本丰满大乳奶|
国产91视觉|
国产成人精品一区二区三区免费|
国产精品边吃奶边做爽|
先锋影音在线播放av|
91国产美女视频|
91啦中文成人|
亚洲AV无码国产精品午夜字幕|
午夜久久久影院|
一个人免费视频www在线观看|
日本黄色免费网址|
欧美四级在线|
一区二区三区在线免费视频|
欧美日韩国产传媒|
亚洲欧美另类图片小说|
免费不卡av|
调教视频在线观看|
成人在线视频国产|
色综合天天狠天天透天天伊人|
成人黄色在线电影|
在线看日韩精品电影|
精品成人国产|
永久免费看mv网站入口78|
亚洲奶水xxxx哺乳期|
91精品国产自产在线丝袜啪|
久久久国内精品|
99热成人精品热久久66|
男人皇宫亚洲男人2020|
神马午夜伦理影院|
国产精品中出一区二区三区|
av黄色在线免费观看|
日本丰满少妇一区二区三区|
久久这里只有精品6|
成人在线观看黄色|
免费黄色一级网站|
gogo久久日韩裸体艺术|
色婷婷**av毛片一区|
成人免费一区二区三区|
一本色道久久综合亚洲精品酒店|
欧美精品久久久久久久小说|
一区二区三区在线|网站|
爱情岛论坛亚洲自拍|
久久久精品人体av艺术|
台湾佬中文娱乐网欧美电影|
免费在线观看毛片网站|
26uuu国产一区二区三区|
影音先锋在线中文|
欧美性xxxxx极品少妇|
av资源新版天堂在线|
国产精品入口麻豆原神|
国产成人艳妇aa视频在线|
香蕉视频免费在线播放|
最新超碰在线|
亚洲少妇诱惑|
久久久久亚洲AV|
首页亚洲欧美制服丝腿|
91麻豆精品国产91久久久资源速度|
麻豆视频入口|
成人羞羞视频播放网站|
欧美第一页草草影院浮力|
久久国产精品久久久久|
怡红院成永久免费人全部视频|
国产一区二区三区四区在线|
青娱乐国产精品视频|
日韩在线中文视频|
精品久久久久中文慕人妻|
国产三级精品三级在线观看国产|
亚洲高清资源综合久久精品|
色妇色综合久久夜夜|
自拍偷拍欧美视频|
韩国精品视频在线观看|
日韩精品免费观看|
日韩成人短视频|
亚洲精品美女在线观看播放|
日日摸日日碰夜夜爽av|
欧美群妇大交群中文字幕|
蜜桃999成人看片在线观看|
国产精品成人在线视频|
精品视频一区二区三区在线观看|
超碰在线国产|
91精品视频播放|
亚洲国语精品自产拍在线观看|
国产精品激情自拍|
91精品国产综合久久久久久久久久|
国产精品久久久久久久久久直播|
jizz免费一区二区三区|
欧美成人精品一区二区三区在线看|
一级片视频在线观看|
五月婷六月丁香|
欧美伊人亚洲伊人色综合动图|
国产老妇伦国产熟女老妇视频|
先锋影音av资源站|
色吊丝av中文字幕|
日韩五码电影|
26uuu亚洲电影在线观看|
亚洲成人精品综合在线|
视频一区在线免费看|
在线免费观看www|
欧美日韩一区在线观看|
国产寡妇亲子伦一区二区三区四区|
久久99国产精品尤物|
亚洲精品8mav|
在线播放亚洲激情|
国产丝袜在线观看视频|
亚洲亚洲精品在线观看|
日韩精品手机在线观看|
97精品国产99久久久久久免费|
欧美高清另类hdvideosexjaⅴ|
亚洲激情欧美色图|
91精品无人成人www|
亚洲成年人在线观看|
色诱色偷偷久久综合|
日本不卡高清视频一区|
精品人妻少妇一区二区|
久热综合在线亚洲精品|
欧美性受xxxx黑人xxxx|
一区二区三区视频免费|
国产av无码专区亚洲精品|
乱小说综合网站|
欧洲一区二区日韩在线视频观看免费|
国产精品一区二区久久精品|
tube国产麻豆|
成人在线免费观看网址|
亚洲视屏在线观看|
高清中文字幕在线|
国产免费成人在线视频|
国产欧美精品久久久|
蜜桃av成人|
免费国产在线视频|
色av成人天堂桃色av|
麻豆影视国产在线观看|
日本三级久久久|
久久免费国产|
你懂的在线观看视频网站|
99久久99久久精品免费看小说.|
一级特级黄色片|
欧美黄色成人|
亚洲色图自拍|
亚洲欧美福利视频|
日韩av中文字幕一区二区三区|
91蝌蚪视频九色|