hbase shell的用法

HBase shell的基本用法

hbase提供了一个shell的终端给用户交互

通过执行 help get 可以看到命令的帮助信息。

一、一般操作

说明:表名,列族名以及列名都要用 单引号扩起来

1、进入hbase shell

如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入

[root@s89 ~]# hbase shell

2、查询服务器状态

hbase(main):001:0> status

扫描二维码关注公众号,回复: 138650 查看本文章

1个活跃的 master

1个备份的master

3个服务

0个挂掉的节点

平均加载时间是0.6667秒

3、查看hbase的版本

hbase(main):002:0> version

4、whoami命令可查看当前用户

5、获取帮助命令

help "COMMAND"【获取一个具体的命令的帮助信息】

help "COMMAND_GROUP" 【获取一组命令的帮助信息】

二、DDL操作

1、创建表

hbase(main):003:0> create 'member','member_id','address','info'

说明:操作不以分号结尾

一个列族中只有一个列时,这个列族就是列

或者:

hbase(main):076:0> create 't1',{NAME => 'f1', VERSIONS => 2},{NAME => 'f2', VERSIONS => 2}

2、列出hbase中所有的表

3、查看表结构

hbase(main):005:0> describe 'member'

4、删除一个列族 ,alter,disable,enable

我们之前建了3个列族,但是发现member_id这个列族是多余的,因为他就是主键,所以我们要将其删除。

hbase(main):007:0> alter 'member',{NAME => 'member_id',METHOD=>'delete'}

说明:

没有返回结果,说明没有删除列族成功,

因为,删除列族的时候,要先把表关了,然后再删除【对于TDH来说需要先关表然后删除表中的列族】

hbase(main):003:0> disable 'member' 关表

hbase(main):004:0> alter 'member',{NAME=>'member_id',METHOD=>'delete'}

hbase(main):007:0> enable 'member'  //开启表

5、删除一个表(先要对表 disable了)drop

6、判断表是否存在

hbase(main):013:0> exists 'opc'

hbase(main):013:0> exists 'member'

7、判断表是否开启着

hbase(main):015:0> is_enabled 'member'

8、判断表是否关闭着

hbase(main):016:0> is_disabled 'member'

三、DML操作

1、插入数据(一个单元格一个单元格的往里插入数据)

put '表名','行键','列族名:列名','值'

put'member','scutshuxue','info:age','24'

put'member','scutshuxue','info:birthday','1987-06-17'

put'member','scutshuxue','info:company','alibaba'

put'member','scutshuxue','address:contry','china'

put'member','scutshuxue','address:province','zhejiang'

put'member','scutshuxue','address:city','hangzhou'

put'member','xiaofeng','info:birthday','1987-4-17'

put'member','xiaofeng','info:favorite','movie'

put'member','xiaofeng','info:company','alibaba'

put'member','xiaofeng','address:contry','china'

put'member','xiaofeng','address:province','guangdong'

put'member','xiaofeng','address:city','jieyang'

put'member','xiaofeng','address:town','xianqiao'

put'member','xiaofeng','address','aaaaaaa'

列族下面既可以 有列,也可以直接有值,也可以 既有列又直接有值,二者共存

2、获取一条数据

获取一个 row_key 的所有数据

get '表名','行键'

hbase(main):030:0> get 'member','scutshuxue'

获取一个 row_key ,一个列族的所有数据

get '表名','行键' ,'列族名'

hbase(main):031:0> get 'member','scutshuxue','info'

获取一个 row_key ,一个列族下的一个列 的所有数据

get '表名','行键' ,'列族名:列名'

hbase(main):032:0> get 'member','scutshuxue','info:age'

3、更新一条记录

把scutshuxue 的年龄改成 99

hbase(main):033:0> get 'member','scutshuxue','info:age' //改之前的数据

hbase(main):034:0> put 'member','scutshuxue','info:age' ,'99'

说明:先表,后行键,然后是 列族再次是列

更新单元格中的记录就是直接给这个单元格中从新插入一条数据,

自动会把之前的数据先删除了,然后再插入

4、通过timestamp 来获取指定版本的数据

hbase(main):037:0> get 'member','scutshuxue',{COLUMN=>'info:age',TIMESTAMP=>1487148453191}

说明:timestamp 也可以是表中的数据,我们可以通过timestamp来过滤数据,这里的timestamp是操作这条记录的时间戳

5、全表扫描

hbase(main):038:0> scan 'member'

6、删除记录数据

a、删除 row_key  是 temp 的记录

hbase(main):041:0> delete 'member','temp','info:age'

b、删除整行数据(指定row_key)

hbase(main):044:0> deleteall 'member','xiaofeng'

7、查看表中有多少行

hbase(main):046:0> count 'member'

8、

hbase(main):047:0> incr 'member','xiaofeng','info:age'

hbase(main):048:0> get 'member','xiaofeng','info:age'

9、清空表

hbase(main):053:0> truncate 'member'

说明:从打印的日志可以看出,清空表 其实就是

先关表

然后删表

然后重新创建表

权限管理

1)查看权限

猜你喜欢

转载自www.cnblogs.com/liubao-xiaoqin/p/9001440.html
今日推荐