常见:Hbase shell 基础命令简单汇总

325 阅读2分钟

本文已参加「新人创作礼」活动,一起开启掘金创作之路。

这次带来的是 Hbase shell 的一些常见操作。

Hbase 是一个分布式的面向列的开源数据库,且 Hbase 不同于一般的关系数据库,它是一个适用于非结构化数据存储的数据库,且是基于列的模式。它利用 Hadoop HDFS 作为其文件存储系统,利用 Hadoop MapReduce 来处理 HBase 中的海量数据,利用 Zookeeper 作为协同服务,非常好用。

cd 到对应目录

cd /usr/local/HBase/bin

查看帮助

./hbase --help

启动shell

./hbase shell

通用命令

- 展示regionserver的task列表
processlist

- 展示集群的状态
status

- table命令的帮助手册
table_help

- 显示hbase的版本
version

- 展示当前hbase的用户
whoami

查看所有的表

list

输出如下

student

gbh_stu

gbh_stud

...

扫描表

scan "gbh_stu"

输出如下

ROW value

s01 info:address

timestamp

info:age

创建表

create "s1",'cf'

增加数据

put 's1','gbh','cf:age:','1'

如果对同一行进行put则是修改

put 's2','aaa','cf:age:','1'

扫描全表

scan 's1'

添加新列

put 's1','gbh','cf:gender','male'

获取数据

格式:get 'table','rowkey'
形如:get 's1','aaa'

多版本(可能和API版本有关系)

get 's1','gbh',{column=>'cf:age',VERSIONS=>4}
scan 's1',{VERSIONs=>8}

dml 操作

- 向表中追加一个具体的值
append 't1', 'r1', 'c1', 'value', ATTRIBUTES=>{'mykey'=>'myvalue'}

- 统计表的记录条数,默认一千条输出一次
count 'test'

- 删除表的某一个值
delete 't1', 'r1', 'c1', ts1

- 删除表的某一个列的所有值
deleteall 't1', 'r1', 'c1'

- 获取表的一行记录
get 't1', 'r1'

- 获取表的一个列的值的个数
get_counter 't1', 'r1', 'c1'

- 获取表的切片
get_splits 't1'

- 增加一个cell对象的值
incr 't1', 'r1', 'c1'

- 清空表的所有数据
truncate

namespace 操作

- 修改命名空间的属性
alter_namespace 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

- 创建命名空间
create_namespace 'my_ns'

- 获取命名空间的描述信息
describe_namespace 'my_ns'

- 删除命名空间
drop_namespace 'my_ns'

- 展示所有的命名空间
list_namespace

- 展示某个命名空间下的所有表
list_namespace_tables 'my_ns'

当然,在后面我还会出一期对应的 Hbase shell 的实例说明啦。