hbase中表的資料時怎麼儲存的

2021-06-20 17:34:05 字數 2069 閱讀 2918

hbase中的表示按column family來儲存的

建立乙個有3個column family的表

create 't1', , ,

定義表的時候只需要指定column family的名字,列名在put的時候動態指定

插入資料

下面插入沒有指定column的名字

put 't1', 'r1', 'f1', 'v1'

put 't1', 'r2', 'f2', 'v2'

put 't1', 'r3', 'f3', 'v3'

下面插入指定column的名字

put 't1', 'r4', 'f1:c1', 'v1'

put 't1', 'r5', 'f2:c2', 'v2'

put 't1', 'r6', 'f3:c3', 'v3'

hbase(main):245:0> scan 't1'

row column+cell

r1 column=f1:, timestamp=1335407967324, value=v1

r2 column=f2:, timestamp=1335408004559, value=v2

r4 column=f1:c1, timestamp=1335408640777, value=v1

r5 column=f2:c1, timestamp=1335408640822, value=v2

r6 column=f1:c6, timestamp=1335412392258, value=v3

r6 column=f2:c1, timestamp=1335412384739, value=v3

r6 column=f2:c2, timestamp=1335412374797, value=v3

插入多列的資料

put 't1', 'r7', 'f1:c4', 'v9'

put 't1', 'r7', 'f2:c3', 'v9'

put 't1', 'r7', 'f3:c2', 'v9'

手工把memstore寫到hfile中

flush 't1'

刪除所有cf3的資料

deleteall 't1','r7'

flush 't1'

每次flash都會建乙個新的hfile

$ ../bin/hadoop dfs -lsr /hbase/t1

資料時直接存到cf目錄下的,每個cf目錄下有3到4個hfile

f1f1/098a7a13fa53415b8ff7c73d4d69c869

f1/321c6211383f48dd91e058179486587e

f1/9722a9be0d604116882115153e2e86b3

f2f2/43561825dbde4900af4fb388040c24dd

f2/93a20c69fdec43e8beeed31da8f87b8d

f2/b2b126443bbe4b6892fef3406d6f9597

f3f3/98352b1b34e242ecac72f5efa8f66963

f3/e76ed1b564784799affa59fea349e00d

f3/f9448a9a381942e7b785e0983a66f006

f3/fca4c36e48934f2f9aaf1a585

c237d44

f3都資料雖然都被刪除了,由於沒有合併檔案都存在

手工合併hfile

hbase(main):244:0> compact 't1'

0 row(s) in 0.0550 seconds

$ ../bin/hadoop dfs -lsr /hbase/t1

f1f1/00c05ba881a14ca0bdea55ab509c2327

f2f2/95fbe85769d64fc4b291cabe73b1ddb2

/f3

f1和f2下就只有乙個hfile,f3下面沒有hfile因為資料都被刪除了

一次只能put乙個column

一次只能delete乙個column

刪除整行,用deleteall

deleteall 't1', 'r1'

HBase資料儲存

hbase的資料檔案都儲存在hdfs上,格式主要有兩種 hfile hbase中keyvalue資料的儲存格式,hfile是hadoop的二進位制檔案,實際上storefile就是對hfile做了輕量級的包裝,即storefile底層就是hfile hlog file hbase中wal write...

HBASE 資料儲存實踐

hbase 來自hadoop database 是乙個很好的bigtable的實現,能夠儲存上百億行和百萬列的資料,是乙個高可靠性 高效能 面向列 可伸縮的分布式儲存系統。hbase的基本架構組成如下 hbase使用zookeeper作為協調服務,每個時刻只有乙個hmaster在執行,hmaster...

Hadoop資料儲存 Hbase

大家都知道hadoop是乙個資料庫,其實說的的就是hbase。它和我們平常理解的關係型資料庫有什麼區別呢?1.它是nosql的,它沒有sql的介面,有自己的一套api。通過以上描述,我們分析一下hbase的特點 1 儲存海量資料 pb 2 高吞吐 每秒每個節點上千次寫 3 適合處理稀疏資料 半結構化...