目录
- [1. HBase常用命令](#1. HBase常用命令)
-
- [1.1 create命令](#1.1 create命令)
- [1.2 list命令](#1.2 list命令)
- [1.3 describe命令](#1.3 describe命令)
- [1.4 put命令](#1.4 put命令)
- [1.5 get命令](#1.5 get命令)
- [1.6 scan命令](#1.6 scan命令)
- [1.7 count命令](#1.7 count命令)
- [1.8 exists命令](#1.8 exists命令)
- [1.9 修改表结构](#1.9 修改表结构)
- [1.10 delete命令](#1.10 delete命令)
- [1.11 deleteall命令](#1.11 deleteall命令)
- [1.12 truncate命令](#1.12 truncate命令)
- [1.13 disable、drop命令](#1.13 disable、drop命令)
- [1.14 status命令](#1.14 status命令)
- [1.15 version命令](#1.15 version命令)
- [2. HBase Shell综合示例](#2. HBase Shell综合示例)
-
- [2.1 创建表并插入数据](#2.1 创建表并插入数据)
- [2.2 基本操作实践](#2.2 基本操作实践)
- [3. HBase Shell全部命令](#3. HBase Shell全部命令)
- 参考
1. HBase常用命令
HBase为用户提供了一个非常方便的使用方式,称之为HBase Shell。HBase Shell提供了大多数的HBase命令,通过HBase Shell,用户可以方便地创建、删除及修改表,还可以向表中添加数据、列出表中的相关信息。
HBase Shell的常用命令如下表所示。
名称 | 命令表达式 |
---|---|
创建表 | create '表名称', '列族名称1', '列族名称2', '列族名称3' |
添加记录 | put '表名称', '行键', '列名称:', '值' |
查看记录 | get '表名称', '行键' |
查看表中的记录总数 | count '表名称' |
删除记录 | delete '表名', '行键', '列名称' |
删除一张表 | 先要屏蔽该表,才能对该表进行删除,第一步disable '表名称' ,第二步drop '表名称' |
查看所有记录 | ``scan '表名称' |
查看某个表某个列中的所有数据 | scan '表名称', {COLUMNS=>'列族名称:列名称'} |
更新记录 | 重写一遍进行覆盖 |
1.1 create命令
功能:创建表。
create命令:create '表名称', '列族名称1', '列族名称2', '列族名称3'
,其中表名、列名都要用单引号括起来,并以逗号分割。
1.2 list命令
功能:查看当前HBase有哪些表。
1.3 describe命令
功能:查看指定表的构造。
describe命令:describe '表名'
。describe可简写为desc。
1.4 put命令
功能:向表中插入数据。
put命令:put '表名', '行键', '列族:列名', '值'
。
1.5 get命令
功能:查看指定表中指定行键或指定列的相关数据。
命令:get '表名', '行键'
或get '表名', '行键', '列族:列名'
。
1.6 scan命令
功能:查看指定表或指定列的所有数据。
命令:scan '表名'
或scan '表名', {COLUMN => '列族:列名'
}或scan '表名', {COLUMNS=>'列族'}
。
1.7 count命令
功能:统计记录条数。
命令:count '表名'
。
1.8 exists命令
功能:判断表是否存在。
命令:exists '表名'
。
1.9 修改表结构
先要disable '表名'
,再对表进行修改,最后要enable '表名'
。
下面的命令可以将HBase的scores表course列族改为保存3份历史副本。
1.10 delete命令
功能:删除指定表中指定列的数据。
命令:delete '表名', '行键', '列族:列名'
。
1.11 deleteall命令
功能:删除指定行键的记录。
命令:deleteall '表名', '行键'
。
1.12 truncate命令
功能:清空表中数据,但保留表结构。
命令:truncate '表名'
。
1.13 disable、drop命令
功能:先禁用表,然后删除表。
命令:disable '表名'
和drop '表名'
。
1.14 status命令
功能:查看HBase运行状态。
命令:status
。
1.15 version命令
功能:查看HBase的版本信息。
命令:version
。
2. HBase Shell综合示例
2.1 创建表并插入数据
bash
create 'users', 'user_id', 'address', 'info'
put 'users', 'xiaoming', 'info:age', '24'
put 'users', 'xiaoming', 'info:birthday', '1987-06-17'
put 'users', 'xiaoming', 'info:company', 'alibaba'
put 'users', 'xiaoming', 'address:country', '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:country', 'China'
put 'users', 'zhangyifei', 'address:province', 'guangdong'
put 'users', 'zhangyifei', 'address:city', 'jieyang'
put 'users', 'zhangyifei', 'address:town', 'xianqiao'
2.2 基本操作实践
获取一个行键对应的记录:get 'users', 'xiaoming'
。
获取一个列族对应的记录:get 'users', 'xiaoming', 'info'
。
获取一个列名对应的记录:get 'users', 'xiaoming', 'info:age'
。
在HBase中,数据的插入和更新统一使用put命令。当使用put命令向一个表中的某个列插入数据时,如果该数据原来不存在,则执行插入操作;如果原始数据存在,则执行更新操作。HBase执行更新操作时并不会将原有的数据删除替换,而是直接以一个新的版本号额外将新的数据插入到单元格中,这就意义着HBase允许通过查询将某一个单元格中曾经存在过的所有历史版本数据同一查询出来。
bash
alter 'user', {NAME=>'info', VERSIONS=>3}
put 'users', 'xiaoming', 'info:age', '29'
get 'users', 'xiaoming', 'info:age'
put 'users', 'xiaoming', 'info:age', '30'
get 'users', 'xiaoming', 'info:age'
从下图中可以两次get命令查看的info:age都是当前最新的数据。
获取单元格中不同版本的数据:get 'users', 'xiaoming', {COLUMN=>'info:age', VERSIONS=>3}
。
删除一个行键对应记录中列名的数据:delete 'users', 'xiaoming', 'info:age'
。
从下图中可以删除xiaoming对应记录中info:age=30的数据。
删除一个行键对应的记录:deleteall 'users', 'xiaoming'
。
统计行数:count 'users'
。
清空表:truncate 'users'
。
3. HBase Shell全部命令
参考
吴章勇 杨强著 大数据Hadoop3.X分布式处理实战