hbase常用操作命令大全
HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。
HBase是Google Bigtable的開源實現,類似Google Bigtable利用GFS作為其文件存儲系統,HBase利用Hadoop HDFS作為其文件存儲系統;Google運行MapReduce來處理Bigtable中的海量數據,HBase同樣利用Hadoop MapReduce來處理HBase中的海量數據;Google Bigtable利用 Chubby作為協同服務,HBase利用Zookeeper作為對應。
HBase常用命令
.進入shell
圖一
.表結構
1. 創建表
語法:create 《table》, {NAME =》 《family》, VERSIONS =》 《VERSIONS》}
創建一個User表,并且有一個info列族
hbase(main):002:0》 create ‘User’,‘info’0 row(s) in 1.5890 seconds
=》 Hbase::Table - User
2. 查看所有表
hbase(main):003:0》 list
TABLE
SYSTEM.CATALOG
SYSTEM.FUNCTION
SYSTEM.SEQUENCE
SYSTEM.STATS
TEST.USER
User
6 row(s) in 0.0340 seconds
=》 [“SYSTEM.CATALOG”, “SYSTEM.FUNCTION”, “SYSTEM.SEQUENCE”, “SYSTEM.STATS”, “TEST.USER”, “User”]
3. 查看表詳情
hbase(main):004:0》 describe ‘User’
Table User is ENABLED
User
COLUMN FAMILIES DESCRIPTION
{NAME =》 ‘info’, BLOOMFILTER =》 ‘ROW’, VERSIONS =》 ‘1’, IN_MEMORY =》 ‘false’, KEEP_DELETED_CELLS =》 ‘FALSE’, DATA_BLOCK_ENCODING =》 ‘NONE’, TTL =》 ‘FORE
VER’, COMPRESSION =》 ‘NONE’, MIN_VERSIONS =》 ‘0’, BLOCKCACHE =》 ‘true’, BLOCKSIZE =》 ‘65536’, REPLICATION_SCOPE =》 ‘0’}
1 row(s) in 0.1410 seconds
hbase(main):025:0》 desc ‘User’
Table User is ENABLED
User
COLUMN FAMILIES DESCRIPTION
{NAME =》 ‘info’, BLOOMFILTER =》 ‘ROW’, VERSIONS =》 ‘1’, IN_MEMORY =》 ‘false’, KEEP_DELETED_CELLS =》 ‘FALSE’, DATA_BLOCK_ENCODING =》 ‘NONE’, TTL =》 ‘FORE
VER’, COMPRESSION =》 ‘NONE’, MIN_VERSIONS =》 ‘0’, BLOCKCACHE =》 ‘true’, BLOCKSIZE =》 ‘65536’, REPLICATION_SCOPE =》 ‘0’}
1 row(s) in 0.0380 seconds
4. 表修改
刪除指定的列族
hbase(main):002:0》 alter ‘User’, ‘delete’ =》 ‘info’
Updating all regions with the new schema.。.
1/1 regions updated.
Done.
0 row(s) in 2.5340 seconds
.表數據
1. 插入數據
語法:put 《table》,《rowkey》,《family:column》,《value》
hbase(main):005:0》 put ‘User’, ‘row1’, ‘info:name’, ‘xiaoming’
0 row(s) in 0.1200 seconds
hbase(main):006:0》 put ‘User’, ‘row2’, ‘info:age’, ‘18’
0 row(s) in 0.0170 seconds
hbase(main):007:0》 put ‘User’, ‘row3’, ‘info:sex’, ‘man’
0 row(s) in 0.0030 seconds
2. 根據rowKey查詢某個記錄
語法:get 《table》,《rowkey》,[《family:column》,。..。]
hbase(main):008:0》 get ‘User’, ‘row2’
COLUMN CELL
info:age timestamp=1502368069926, value=18
1 row(s) in 0.0280 seconds
hbase(main):028:0》 get ‘User’, ‘row3’, ‘info:sex’
COLUMN CELL
info:sex timestamp=1502368093636, value=man
hbase(main):036:0》 get ‘User’, ‘row1’, {COLUMN =》 ‘info:name’}
COLUMN CELL
info:name timestamp=1502368030841, value=xiaoming
1 row(s) in 0.0120 seconds
3. 查詢所有記錄
語法:scan 《table》, {COLUMNS =》 [ 《family:column》,。..。 ], LIMIT =》 num}
掃描所有記錄
hbase(main):009:0》 scan ‘User’
ROW COLUMN+CELL
row1 column=info:name, timestamp=1502368030841, value=xiaoming
row2 column=info:age, timestamp=1502368069926, value=18
row3 column=info:sex, timestamp=1502368093636, value=man
3 row(s) in 0.0380 seconds
掃描前2條
hbase(main):037:0》 scan ‘User’, {LIMIT =》 2}
ROW COLUMN+CELL
row1 column=info:name, timestamp=1502368030841, value=xiaoming
row2 column=info:age, timestamp=1502368069926, value=18
2 row(s) in 0.0170 seconds
范圍查詢
hbase(main):011:0》 scan ‘User’, {STARTROW =》 ‘row2’}
ROW COLUMN+CELL
row2 column=info:age, timestamp=1502368069926, value=18
row3 column=info:sex, timestamp=1502368093636, value=man
2 row(s) in 0.0170 seconds
hbase(main):012:0》 scan ‘User’, {STARTROW =》 ‘row2’, ENDROW =》 ‘row2’}
ROW COLUMN+CELL
row2 column=info:age, timestamp=1502368069926, value=18
1 row(s) in 0.0110 seconds
hbase(main):013:0》 scan ‘User’, {STARTROW =》 ‘row2’, ENDROW =》 ‘row3’}
ROW COLUMN+CELL
row2 column=info:age, timestamp=1502368069926, value=18
1 row(s) in 0.0120 seconds
另外,還可以添加TIMERANGE和FITLER等高級功能
STARTROW,ENDROW必須大寫,否則報錯;查詢結果不包含等于ENDROW的結果集
4. 統計表記錄數
語法:count 《table》, {INTERVAL =》 intervalNum, CACHE =》 cacheNum}
INTERVAL設置多少行顯示一次及對應的rowkey,默認1000;CACHE每次去取的緩存區大小,默認是10,調整該參數可提高查詢速度
hbase(main):020:0》 count ‘User’
3 row(s) in 0.0360 seconds
=》 3
5. 刪除
刪除列
hbase(main):008:0》 delete ‘User’, ‘row1’, ‘info:age’
0 row(s) in 0.0290 seconds
刪除所有行
hbase(main):014:0》 deleteall ‘User’, ‘row2’
0 row(s) in 0.0090 seconds
刪除表中所有數據
hbase(main):016:0》 truncate ‘User’
Truncating ‘User’ table (it may take a while):
- Disabling table.。.
- Truncating table.。.
0 row(s) in 3.6610 seconds
.表管理
1. 禁用表
hbase(main):014:0》 disable ‘User’
0 row(s) in 2.2660 seconds
hbase(main):015:0》 describe ‘User’
Table User is DISABLED
User
COLUMN FAMILIES DESCRIPTION
{NAME =》 ‘info’, BLOOMFILTER =》 ‘ROW’, VERSIONS =》 ‘1’, IN_MEMORY =》 ‘false’, KEEP_DELETED_CELLS =》 ‘FALSE’, DATA_BLOCK_ENCODING =》 ‘NONE’, TTL =》 ‘FORE
VER’, COMPRESSION =》 ‘NONE’, MIN_VERSIONS =》 ‘0’, BLOCKCACHE =》 ‘true’, BLOCKSIZE =》 ‘65536’, REPLICATION_SCOPE =》 ‘0’}
1 row(s) in 0.0340 seconds
hbase(main):016:0》 scan ‘User’, {STARTROW =》 ‘row2’, ENDROW =》 ‘row3’}
ROW COLUMN+CELL
ERROR: User is disabled.
2. 啟用表
hbase(main):017:0》 enable ‘User’
0 row(s) in 1.3470 seconds
hbase(main):018:0》 describe ‘User’
Table User is ENABLED
User
COLUMN FAMILIES DESCRIPTION
{NAME =》 ‘info’, BLOOMFILTER =》 ‘ROW’, VERSIONS =》 ‘1’, IN_MEMORY =》 ‘false’, KEEP_DELETED_CELLS =》 ‘FALSE’, DATA_BLOCK_ENCODING =》 ‘NONE’, TTL =》 ‘FORE
VER’, COMPRESSION =》 ‘NONE’, MIN_VERSIONS =》 ‘0’, BLOCKCACHE =》 ‘true’, BLOCKSIZE =》 ‘65536’, REPLICATION_SCOPE =》 ‘0’}
1 row(s) in 0.0310 seconds
hbase(main):019:0》 scan ‘User’, {STARTROW =》 ‘row2’, ENDROW =》 ‘row3’}
ROW COLUMN+CELL
row2 column=info:age, timestamp=1502368069926, value=18
1 row(s) in 0.0280 seconds
3. 測試表是否存在
hbase(main):022:0》 exists ‘User’
Table User does exist
0 row(s) in 0.0150 seconds
hbase(main):023:0》 exists ‘user’
Table user does not exist
0 row(s) in 0.0110 seconds
hbase(main):024:0》 exists user
NameError: undefined local variable or method `user‘ for #《Object:0x412ebe64》
4. 刪除表
刪除前,必須先disable
hbase(main):030:0》 drop ’TEST.USER‘
ERROR: Table TEST.USER is enabled. Disable it first.
Here is some help for this command:
Drop the named table. Table must first be disabled:
hbase》 drop ’t1‘
hbase》 drop ’ns1:t1‘
hbase(main):031:0》 disable ’TEST.USER‘
0 row(s) in 2.2640 seconds
hbase(main):033:0》 drop ’TEST.USER‘
0 row(s) in 1.2490 seconds
hbase(main):034:0》 list
TABLE
SYSTEM.CATALOG
SYSTEM.FUNCTION
SYSTEM.SEQUENCE
SYSTEM.STATS
User
5 row(s) in 0.0080 seconds
=》 [“SYSTEM.CATALOG”, “SYSTEM.FUNCTION”, “SYSTEM.SEQUENCE”, “SYSTEM.STATS”, “User”]
評論
查看更多