本文已参加「新人创作礼」活动,一起开启掘金创作之路。
这次带来的是 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 的实例说明啦。