HBase的Shell
2018-12-04 本文已影响8人
geekAppke
HBASE Shell的DDL操作
创建表,和列族
hbase(main)> create 'users','user_id','address','info'
表users,有三个列族user_id,address,info
列出全部表
hbase(main)> list
得到表的描述
hbase(main)> describe 'users'
创建表
hbase(main)> create 'users_tmp','user_id','address','info'
删除表
hbase(main)> disable 'users_tmp'
hbase(main)> drop 'users_tmp'
HBASE Shell的DML操作
添加记录
put 'users','xiaoming','info:age','24';
put 'users','xiaoming','info:birthday','1987-06-17';
put 'users','xiaoming','info:company','alibaba';
put 'users','xiaoming','address:contry','china';
put 'users','xiaoming','address:province','zhejiang';
put 'users','xiaoming','address:city','hangzhou';
put 'users','zhangyifei','info:birthday','1987-4-17';
put 'users','zhangyifei','info:favorite','movie';
put 'users','zhangyifei','info:company','alibaba';
put 'users','zhangyifei','address:contry','china';
put 'users','zhangyifei','address:province','guangdong';
put 'users','zhangyifei','address:city','jieyang';
put 'users','zhangyifei','address:town','xianqiao';
获取一条记录
1.取得一个id的所有数据
hbase(main)> get 'users','xiaoming'
2.获取一个id,一个列族的所有数据
hbase(main)> get 'users','xiaoming','info'
3.获取一个id,一个列族中一个列的
所有数据
hbase(main)> get 'users','xiaoming','info:age'
hbase(main):014:0> put 'users','xiaoming','info:birthday','1987-09-17'
0 row(s) in 0.3190 seconds
hbase(main):015:0> get 'users','xiaoming'
COLUMN CELL
info:age timestamp=1543854604499, value=24
info:birthday timestamp=1543854640354, value=1987-09-17
2 row(s) in 0.2590 seconds
hbase(main):016:0> get 'users','xiaoming','info'
COLUMN CELL
info:age timestamp=1543854604499, value=24
info:birthday timestamp=1543854640354, value=1987-09-17
2 row(s) in 0.1590 seconds
hbase(main):017:0> get 'users','xiaoming','info:age'
COLUMN CELL
info:age timestamp=1543854604499, value=24
更新记录
>put 'users','xiaoming','info:age' ,'29'
hbase(main)> get 'users','xiaoming','info:age'
hbase(main)> put 'users','xiaoming','info:age' ,'30'
hbase(main)> get 'users','xiaoming','info:age'
获取单元格数据的版本数据
hbase(main)> get 'users','xiaoming',{COLUMN=>'info:age',VERSIONS=>1}
hbase(main)> get 'users','xiaoming',{COLUMN=>'info:age',VERSIONS=>2}
hbase(main)> get 'users','xiaoming',{COLUMN=>'info:age',VERSIONS=>3}
获取单元格数据的某个版本数据
hbase(main)> get 'users','xiaoming',{COLUMN=>'info:age',TIMESTAMP=>1364874937056}
全表扫描
hbase(main)> scan 'users'
删除xiaoming值的'info:age'字段,删除某一列,不影响其他
hbase(main)> delete 'users','xiaoming','info:age'
hbase(main)> get 'users','xiaoming'
删除整行
hbase(main)> deleteall 'users','xiaoming'
统计表的行数
hbase(main)> count 'users'
清空表
hbase(main)> truncate 'users'
HBase Shell
通过hbase shell
命令进入HBase 命令行接口
名称 | Shell命令 |
---|---|
列出所有表名 | list |
hbase集群状态 | hbase(main):041:0> status 3 servers, 0 dead, 1.0000 average load |
创建表 | create '表名','列族名1','列族名2' |
添加记录 |
put '表名','RowKey','列族名称:列名','值' 相同的 rowKey 直接覆盖 |
查看记录 | get '表名','RowKey','列族名称:列名' |
查看表中的记录总数 | count '表名' |
表结构描叙 | describe '表名' |
删除记录 | delete '表名','RowKey','列族名称:列名' |
清空表中所有记录 | truncate '表名' |
用户空间 | list_namespace |
删除一张表 | 先要禁用该表,才能对该表进行删除 第一步: disable '表名称' 第二步: drop '表名称'
|
查看所有记录 | scan '表名' |
查看某个表某个列中所有数据 | scan '表名', {COLUMNS=>'列族名称:列名称'} |
更新记录 | 重写1遍,进行覆盖 |
内存数据输出到磁盘 | flush '表名' |
表是否存在 | exists '表名' |
是否处于禁用状态 | is_disabled '表名' |
查看HFile文件 | [root@node005 ~]# hbase hfile -p -f 6383e334aae44 |
参考资料
Sqool和Hive、HBase简介
Hive、Hbase、mysql区别
HBASE中column family的设计,rowkey的设计,以及row key的设计原则问题