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”]
评论
查看更多