HBase命令行基本操作,hbase基本操作


关于HBase

[hdfs@hadoop1 root]$ hbase
Usage: hbase [<options>] <command> [<args>]
Options:
  --config DIR    Configuration direction to use. Default: ./conf
  --hosts HOSTS   Override the list in 'regionservers' file

Commands:
Some commands take arguments. Pass no args or -h for usage.
  shell           Run the HBase shell
  hbck            Run the hbase 'fsck' tool
  hlog            Write-ahead-log analyzer
  hfile           Store file analyzer
  zkcli           Run the ZooKeeper shell
  upgrade         Upgrade hbase
  master          Run an HBase HMaster node
  regionserver    Run an HBase HRegionServer node
  zookeeper       Run a Zookeeper server
  rest            Run an HBase REST server
  thrift          Run the HBase Thrift server
  thrift2         Run the HBase Thrift2 server
  clean           Run the HBase clean up script
  classpath       Dump hbase CLASSPATH
  mapredcp        Dump CLASSPATH entries required by mapreduce
  pe              Run PerformanceEvaluation
  ltt             Run LoadTestTool
  version         Print the version
  CLASSNAME       Run the class named CLASSNAME

进入命令行

[root@hadoop1 ~]# hbase shell

退出命令行

hbase(main):001:0> exit

查看全部表

hbase(main):001:0> list
TABLE
0 row(s) in 1.9500 seconds
=> []

创建表

create '表名称','列名称1',...,'列名称n'

eg:建立一个表scores,有两个列族grad和courese。
hbase(main):004:0> create 'scores','grad','courese'
0 row(s) in 1.5820 seconds
=> Hbase::Table - scores

hbase(main):005:0> list
TABLE
scores
1 row(s) in 0.0080 seconds
=> ["scores"]

查看表结构

添加记录

put '表名','行键名','列名','单元格值','时间戳'
时间戳可以省略。

hbase(main):009:0> put 'scores','Tom','grad:','5'
hbase(main):011:0> put 'scores','Tom','courese:math','100'
hbase(main):012:0> put 'scores','Tom','courese:art','100'

hbase(main):013:0> put 'scores','Mark','grad','6'

hbase(main):014:0> put 'scores','Mark','courese:english','120'

hbase(main):015:0> put 'scores','Mark','courese:chinese','108'

查看表所有记录(全面扫描)

scan 'scores'

这里写图片描述

查找某条记录

hbase(main):020:0> get 'scores','Mark'
COLUMN             CELL
 courese:chinese   timestamp=1435491529683, value=108
 courese:english   timestamp=1435491508206, value=120
 grad:             timestamp=1435491484521, value=6
3 row(s) in 0.0520 seconds

hbase(main):021:0> get 'scores','Mark','grad'
COLUMN             CELL
 grad:             timestamp=1435491484521, value=6
1 row(s) in 0.0390 seconds

修改数据存储的版本

查看记录的多个版本

统计行数

 hbase> count 'ns1:t1'
 hbase> count 't1'
 hbase> count 't1', INTERVAL => 100000
 hbase> count 't1', CACHE => 1000
 hbase> count 't1', INTERVAL => 10, CACHE => 1000
统计一般比较耗时,使用mapreduce进行统计,统计结果会缓存,默认是10行,统计间隔默认是1000行。

hbase(main):038:0> count 'scores'
2 row(s) in 0.0290 seconds
=> 2

修改表结构

增加一列族
hbase(main):048:0> alter 'scores',NAME=>'info'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.4330 seconds

删除一个列族
hbase(main):053:0> alter 'scores',NAME=>'NAME=info',METHOD=>'delete'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.4670 seconds
hbase(main):055:0> alter 'scores','delete'=>'courese'

不过不能删除掉,先disable 'scores',修改完之后再enable 'scores'

删除表

先禁用表
hbase(main):057:0> disable 'scores'
然后删除表
hbase(main):057:0> drop 'scores'

删除指定数据

delete 'scores','Mark','courese:english'

删除整行

deleteall '表名','行键'
deleteall 'scores','Mark'(慎用)

清空表

表结构仍然在。

truncate 'scores'

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关内容