Hbase常用Shell命令

status 查看系统状态

hbase(main):010:0> status
1 active master, 0 backup masters, 4 servers, 0 dead, 6.5000 average load

version 查看版本号

hbase(main):011:0> version
1.2.0-cdh5.7.2, rUnknown, Fri Jul 22 12:20:40 PDT 2016

table_help 查看提示信息

hbase(main):012:0> table_help
Help for table-reference commands.

You can either create a table via 'create' and then manipulate the table via commands like 'put', 'get', etc.
See the standard help information for how to use each of these commands.

However, as of 0.96, you can also get a reference to a table, on which you can invoke commands.
For instance, you can get create a table and keep around a reference to it via:

   hbase> t = create 't', 'cf'

Or, if you have already created the table, you can get a reference to it:

   hbase> t = get_table 't'

You can do things like call 'put' on the table:

  hbase> t.put 'r', 'cf:q', 'v'

which puts a row 'r' with column family 'cf', qualifier 'q' and value 'v' into table t.

To read the data out, you can scan the table:

  hbase> t.scan

which will read all the rows in table 't'.

Essentially, any command that takes a table name can also be done via table reference.
Other commands include things like: get, delete, deleteall,
get_all_columns, get_counter, count, incr. These functions, along with
the standard JRuby object methods are also available via tab completion.

For more information on how to use each of these commands, you can also just type:

   hbase> t.help 'scan'

which will output more information on how to use that command.

You can also do general admin actions directly on a table; things like enable, disable,
flush and drop just by typing:

   hbase> t.enable
   hbase> t.flush
   hbase> t.disable
   hbase> t.drop

Note that after dropping a table, your reference to it becomes useless and further usage
is undefined (and not recommended).

表的管理

create 创建表

hbase(main):014:0> create 'xt','xcf'
0 row(s) in 2.5340 seconds

=> Hbase::Table - xt
hbase(main):015:0>

list 查看表

hbase(main):015:0> list
TABLE
...
xt
17 row(s) in 0.0200 seconds

=> [..."xt"]
hbase(main):016:0>

describe 表的描述

hbase(main):017:0> describe 'xt'
Table xt is ENABLED
xt
COLUMN FAMILIES DESCRIPTION
{NAME => 'xcf', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE',
TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}
1 row(s) in 0.0500 seconds

disable 表的禁用

hbase(main):038:0> disable 'xt'
0 row(s) in 8.7530 seconds

drop 表的删除

hbase(main):039:0> drop 'xt'
0 row(s) in 2.3130 seconds

exsits 判断是否存在

hbase(main):040:0> exists 'xt'
Table xt does not exist
0 row(s) in 0.0110 seconds

数据操作

put 增加和修改数据

向指定的列族中插入数据

hbase(main):019:0> put 'xt','1','xcf:col_name1','col_value1'
0 row(s) in 0.0080 seconds

hbase(main):020:0> put 'xt','1','xcf:col_name2','col_value2'
0 row(s) in 0.0050 seconds

get 查询数据

hbase(main):021:0> get 'xt','1'
COLUMN                              CELL
 xcf:col_name1                      timestamp=1496997489039, value=col_value1
 xcf:col_name2                      timestamp=1496997502916, value=col_value2
2 row(s) in 0.0110 seconds

hbase(main):022:0> get 'xt','1',{COLUMN => 'xcf:col_name1'}
COLUMN                              CELL
 xcf:col_name1                      timestamp=1496997489039, value=col_value1
1 row(s) in 0.0520 seconds

hbase(main):023:0>

delete 删除数据

hbase(main):023:0> delete 'xt','1','xcf:col_name1'
0 row(s) in 0.0280 seconds

hbase(main):024:0> get 'xt','1'
COLUMN                              CELL
 xcf:col_name2                      timestamp=1496997502916, value=col_value2
1 row(s) in 0.0030 seconds

hbase(main):026:0> deleteall 'xt','1'
0 row(s) in 0.0030 seconds

hbase(main):028:0> get 'xt','1'
COLUMN                              CELL
0 row(s) in 0.0070 seconds

scan 扫描全部数据

hbase(main):029:0> put 'xt','1','xcf:col1','123'
0 row(s) in 0.0230 seconds

hbase(main):030:0> put 'xt','2','xcf:col1','123'
0 row(s) in 0.0040 seconds

hbase(main):031:0> put 'xt','3','xcf:col1','123'
0 row(s) in 0.0040 seconds

hbase(main):032:0> put 'xt','4','xcf:col1','123'
0 row(s) in 0.0040 seconds

hbase(main):033:0> scan 'xt'
ROW                                 COLUMN+CELL
 1                                  column=xcf:col1, timestamp=1496998219258, value=123
 2                                  column=xcf:col1, timestamp=1496998223993, value=123
 3                                  column=xcf:col1, timestamp=1496998227824, value=123
 4                                  column=xcf:col1, timestamp=1496998230678, value=123
4 row(s) in 0.0140 seconds

count 统计表个数

hbase(main):034:0> count 'xt'
4 row(s) in 0.0170 seconds

=> 4

truncate 清空表数据

hbase(main):035:0> truncate 'xt'
Truncating 'xt' table (it may take a while):
 - Disabling table...
 - Truncating table...
0 row(s) in 104.8850 seconds

hbase(main):036:0> count 'xt'
0 row(s) in 23.6480 seconds

=> 0
hbase(main):037:0>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java程序员的日常 —— Java类加载中的顺序

    之前说过Java中类的加载顺序,这次看完继承部分,就结合继承再来说说类的加载顺序。 继承的加载顺序 由于static块会在首次加载类的时候执行,因此下面的...

    用户1154259
  • Java程序员的日常 —— static的用法讲解实践

    之前文章说过Java中static的作用,有朋友想看个例子。于是便抽空写了个小栗子 代码 package xing.test.thinking.chap5...

    用户1154259
  • Apache虚拟主机-解惑篇

        有很多平时喜欢钻研的童鞋会发现,为什么有时候自己访问某XXse网站时,总是更新IP地址,内容却与以前一样。这个时候就要了解虚拟主机的概念了。了解这个概...

    用户1154259
  • 一行Python,你可以做什么?

    Python的列表推倒器是美好的语法糖。所以使用列表推倒器简化了for循环的嵌套,更简洁。许多黑魔法都是用这个方法。

    程序员小助手
  • 你遇到过哪些奇葩注释?

    对于很多人来说,程序员是一个神秘又自带逗比性质的群体,写代码这件事虽然不能说是他们唯一关注的事情,但是确实是他们特别关注的事情,所以很多程序员都喜欢代码注释的部...

    一觉睡到小时候
  • UnicodeEncodeError:'latin-1' codec can't encode characters in position 0-1: ordinal not in range(...

    解决方法,在sql.py中,或者是链接数据库时,添加:最后增加一个 : charset="utf8" 就好了

    Python疯子
  • 深入理解ES6--对象、函数扩展

    javascript引擎会在访问作用域中查找其同名变量;如果找到,则变量的值被赋给对象字面量的同名属性。

    奋飛
  • Java虚拟机基础——3类加载机制

    在这个框架图很容易大体上了解Java程序工作原理。首先当程序员写好.java文件后,需要先运行(假设该文件为demo.java)

    隔壁老李头
  • 关于sturct2 ServletRequestAware无法获取request

    至于为何会如此,可以看以下博客: 刨根问底–struts–获得request-继承ServletRequestAware

    陨石坠灭
  • 关于sturct2 ServletRequestAware无法获取request

    至于为何会如此,可以看以下博客: 刨根问底–struts–获得request-继承ServletRequestAware

    陨石坠灭

扫码关注云+社区

领取腾讯云代金券