大数据BigData

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的设计原则问题

上一篇 下一篇

猜你喜欢

热点阅读