HBase常用命令

引用自 https://www.cnblogs.com/shadowalker/p/7350484.html

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
[hadoop@indb-3-136-hzifc bin] echo e c h o HBASE_HOME
/data/program/hbase
[hadoop@indb-3-136-hzifc bin]$ /data/program/hbase/bin/hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/data/program/hbase-1.2.0-cdh5.8.3/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/data/program/hadoop-2.6.0-cdh5.8.3/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter ‘help’ for list of supported commands.
Type “exit” to leave the HBase Shell
Version 1.2.0-cdh5.8.3, rUnknown, Wed Oct 12 20:33:08 PDT 2016

hbase(main):035:0> whoami
hadoop (auth:SIMPLE)
groups: hadoop
表结构
1. 创建表

语法:create

, {NAME => , VERSIONS => }
创建一个User表,并且有一个info列族

hbase(main):002:0> create ‘User’,’info’
0 row(s) in 1.5890 seconds

=> Hbase::Table - User
3. 查看所有表

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”]
4. 查看表详情

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
5. 表修改

删除指定的列族

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

,,,

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

,,[,….]

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

, {COLUMNS => [ ,…. ], 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的结果集

  1. 统计表记录数
    语法:count , {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 #
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”]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值