1. 建表
# 建立表名为order_info, 列簇为info
create 'order_info', 'info'
2. 插入数据
put 'order_info','000001','info:ID','000001'
put 'order_info','000001','info:STATUS','已提交'
put 'order_info','000001','info:PAY_MONEY',4070
put 'order_info','000001','info:PAYWAY',1
3. 查看添加的数据
# 十六进制显示
get 'order_info', '000001'
# 需求:编码中文
get 'order_info', '000001', {FORMATTER=>'toString'}
4. 删除数据
# 删除指定列
delete 'order_info', '000001', 'C1:STATUS'
# 删除整行数据
deleteall 'order_info', '000001'
5. 更新数据
put 'order_info', '000001', 'info:STATUS', '已付款'
6. 清空表数据
truncate 'order_info'
7. 导入数据集
测试数据集:order_info.txt
格式如下
# /export/order_info.txt 数据集路径
hbase shell /export/order_info.txt
8. 计数
# 此操作比较耗时 数据量大,会运行好久
count 'order_info'
当数据量大的时候可以使用hbase提供的mr程序来计数
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'order_info'
9. 查询数据
# 查询所有数据
scan 'order_info', {FORMATTER=>'toString'}
# 查询显示3条数据
scan 'order_info', {LIMIT=>3, FORMATTER=>'toString'}
# 查询指定列
scan 'order_info', {LIMIT=>3, COLUMNS=>['C1:ID', 'C1:STATUS'], FORMATTER=>'toString'}
# 查询指定rowkey的数据
scan 'order_info', {POWPREFIXFILTER=>'000001'COLUMNS=>['C1:ID', 'C1:STATUS'], FORMATTER=>'toString'}
10. 查询表结构信息
describe 'order_info'
11. 检查表是否存在
exists 'order_info'
12. 检查表是否启用或禁用
# 检查表是否启用
is_enabled 'order_info'
# 检查表是否禁用
is_disabled 'order_info'
13. 修改表结构
# 创建一张表student, 列簇basic_info, extend_info
create 'student', 'basic_info', 'extend_info'
# 新增列簇info
alter 'student', 'info'
# 删除列簇info, {'delete' => 'info'} map结构 一个key, {}可省略
alter 'student', {'delete' => 'info'}
14. 禁用/启用表
disable 'order_info'
enalbe 'order_info'
15. 清空表
truncate 'order_info'
16. 批量禁用、删除多张表
# 禁用以stu开头的多张表
disable_all 'stu.*'
# 删除以stu开头的多张表
drop_all 'stu.*'
17. 创建表快照
snapshot '表名', '快照名'
18. 查看快照
list_snapshots
19. 从快照克隆表
clone_snapshot '快照名', '表名'