分類: 大資料--hbase
2013-10-18 14:30
248人閱讀收藏
舉報1. 簡介
hbase是乙個分布式的、面向列的開源資料庫,源於google的一篇**《bigtable:乙個結構化資料的分布式儲存系統》。hbase是google bigtable的開源實現,它利用hadoop hdfs作為其檔案儲存系統,利用hadoop mapreduce來處理hbase中的海量資料,利用zookeeper作為協同服務。
2.常用命令:
(1)建立乙個表scores,有兩個列族grad和courese
[python]view plain
copy
hbase(main):001:0> create 『scores','grade', 『course
可以使用list命令來檢視當前hbase裡有哪些表。使用describe命令來檢視表結構。(記得所有的表明、列名都需要加上引號)
(2)按設計的表結構插入值
[python]view plain
copy
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′
這樣表結構就起來了,其實比較自由,列族裡邊可以自由新增子列很方便。如果列族下沒有子列,加不加冒號都是可以的。
put命令比較簡單,只有這一種用法:
hbase> put 『t1′, 『r1′, 『c1′, 『value', ts1
t1指表,r1指行鍵名,c1指列名,value指單元格值。ts1指時間戳,一般都省略掉了。
(3)根據鍵值查詢資料
[python]view plain
copy
get 『scores','jim'
get 『scores','jim','grade'
get有用法如下:
[python]view plain
copy
hbase> get 『t1′, 『r1′
hbase> get 『t1′, 『r1′,
hbase> get 『t1′, 『r1′,
hbase> get 『t1′, 『r1′,
hbase> get 『t1′, 『r1′,
hbase> get 『t1′, 『r1′,
hbase> get 『t1′, 『r1′,
hbase> get 『t1′, 『r1′, 『c1′
hbase> get 『t1′, 『r1′, 『c1′, 『c2′
hbase> get 『t1′, 『r1′, ['c1', 'c2']
(4)掃瞄所有資料
指定一些修飾詞:timerange, filter, limit, startrow, stoprow, timestamp, maxlength,or columns。沒任何修飾詞,就是上邊例句,就會顯示所有資料行。
**如下:
[python]view plain
copy
hbase> scan 『.meta.'
hbase> scan 『.meta.',
hbase> scan 『t1′,
hbase> scan 『t1′,
hbase> scan 『t1′,
hbase> scan 『t1′,
(5)刪除指定資料
**如下:
[python]view plain
copy
delete 『scores','jim','grade'
delete 『scores','jim'
刪除資料命令也沒太多變化,只有乙個:
hbase> delete 『t1′, 『r1′, 『c1′, ts1
另外有乙個deleteall命令,可以進行整行的範圍的刪除操作,慎用!
如果需要進行全表刪除操作,就使用truncate命令,其實沒有直接的全表刪除命令,這個命令也是disable,drop,create三個命令組合出來的。
(6)修改表結構
**如下:
[python]view plain
copy
disable 『scores'
alter 『scores',name=>'info'
enable 『scores'
alter命令使用如下(如果無法成功的版本,需要先通用表disable):
a、改變或新增乙個列族:
[python]view plain
copy
hbase> alter 『t1′, name => 『f1′, versions => 5
b、刪除乙個列族:
**如下:
[python]view plain
copy
hbase> alter 『t1′, name => 『f1′, method => 『delete'
hbase> alter 『t1′, 『delete' => 『f1′
c、也可以修改表屬性如max_filesize
[python]view plain
copy
memstore_flushsize, readonly,和 deferred_log_flush:
hbase> alter 『t1′, method => 『table_att', max_filesize => '
134217728′
d、可以新增乙個表協同處理器
[python]view plain
copy
hbase> alter 『t1′, method => 『table_att', 『coprocessor'=> 『hdfs:/
乙個表上可以配置多個協同處理器,乙個序列會自動增長進行標識。載入協同處理器(可以說是過濾程式)需要符合以下規則:
[coprocessor jar file location] | class name | [priority] | [arguments]
e、移除coprocessor如下:
hbase> alter 『t1′, method => 『table_att_unset', name => 『max_filesize'
hbase> alter 『t1′, method => 『table_att_unset', name => 『coprocessor$1′
f、可以一次執行多個alter命令:
[python]view plain
copy
hbase> alter 『t1′, ,
(7)統計行數:
**如下:
[python]view plain
copy
hbase> count 『t1′
hbase> count 『t1′, interval => 100000
hbase> count 『t1′, cache => 1000
hbase> count 『t1′, interval => 10, cache => 1000
count一般會比較耗時,使用mapreduce進行統計,統計結果會快取,預設是10行。統計間隔預設的是1000行(interval)。
(8)disable 和 enable 操作
很多操作需要先暫停表的可用性,比如上邊說的alter操作,刪除表也需要這個操作。disable_all和enable_all能夠操作更多的表。
(9)表的刪除
先停止表的可使用性,然後執行刪除命令。
drop 『t1′
以上是一些常用命令詳解,具體的所有hbase的shell命令如下,分了幾個命令群,看英文是可以看出大概用處的,詳細的用法使用help 「cmd」 進行了解。
4. hbase shell指令碼
既然是shell命令,當然也可以把所有的hbase shell命令寫入到乙個檔案內,想linux shell指令碼程式那樣去順序的執行所有命令。如同寫linux shell,把所有hbase shell命令書寫在乙個檔案內,然後執行如下命令即可:
**如下:
$ hbase shell test.hbaseshell
方便好用。
原創若要模糊查詢可以這麼寫。但是row_key只能技術右邊的查詢。
闢如:row_1000, row_1001,row_1002,row_1003,row_1004,row_1005,row_1000,row_10006,
scan 'wujintao',
將會查到,row_1004,row_1005,row_1000,row_10006等記錄
HBASE SHELL 常用命令
說明 新版hbase取消了對hql的支援,只能使用shell 命令 disable tablename disable表。注 修改表結構時,必須要先disable表。命令 enable tablename 使表可用 命令 drop tablename 刪除表 hbase基本命令 下面我們再看看看hb...
hbase shell常用命令
刪除表 disable bookfansscoredetail drop bookfansscoredetail disable bookfansscoretotal drop bookfansscoretotal disable bookviceadmin drop bookviceadmin d...
hbase shell常用命令
list檢視已經建立的表 檢視表結構describe 表 建立表 create 表名稱 列名稱1 列名稱2 列名稱n create student name address 新增記錄 put 表名稱 行名稱 列名稱 值 put student 1 name tom 檢視記錄 get 表名稱 行名稱 ...