HBase Shell 常用操作指南
启动 HBase 客户端
进入 HBase 的安装目录后,执行以下命令进入交互式命令行:
[user@node1 hbase]$ bin/hbase shell
基础命令
- 查看帮助文档:输入
help可列出所有支持的命令及语法说明。 - 查看当前集群状态:
status显示活跃的 RegionServer 数量与系统负载情况。 - 检查版本信息:
version输出当前运行的 HBase 版本号。 - 获取用户身份:
whoami展示当前登录系统的用户信息。 - 列出所有表:
list返回当前命名空间中所有已创建的表名。 - 表相关帮助:
table_help提供对表对象操作的详细指导。
表结构与数据管理
创建新表:使用 create 指令定义表名和列族。例如创建一个名为 student 的表,包含 info 列族:
create 'student', 'info'
写入数据:通过 put 向指定行键、列族:列插入值:
put 'student', '1001', 'info:sex', 'male'
put 'student', '1001', 'info:age', '18'
put 'student', '1002', 'info:name', 'Lily'
put 'student', '1002', 'info:sex', 'female'
put 'student', '1002', 'info:age', '22'
查询整表数据:使用 scan 浏览表内容,支持范围筛选:
-- 扫描全部记录
scan 'student'
-- 按起始行键扫描
scan 'student', {STARTROW => '1001'}
-- 指定起止行键区间
scan 'student', {STARTROW => '1001', STOPROW => '1002'}
查看表定义:使用 describe 'student' 或简写 desc 'student' 查看列族配置详情。
更新字段值:重复执行 put 覆盖原有数据:
put 'student', '1001', 'info:name', 'Tom'
put 'student', '1001', 'info:age', '25'
读取特定数据:get 支持按行或列精确查询:
-- 获取某一行全部列
get 'student', '1001'
-- 获取指定列的值
get 'student', '1001', 'info:name'
统计行数:计算表中总记录条数:
count 'student'
删除数据项:
- 删除整行数据:
deleteall 'student', '1001' - 删除某一列:
delete 'student', '1002', 'info:sex'
清空表内容:保留表结构但移除所有数据,需先禁用再清空:
disable 'student'
truncate 'student'
删除整个表:必须在表处于 disable 状态下才能执行 drop:
disable 'student'
drop 'student'
注意:若未禁用直接删除,会提示错误:"Table is enabled. Disable it first."
修改表结构:动态调整列族属性,如设置版本保留数量:
-- 设置 info 列族保存 3 个历史版本
alter 'student', {NAME => 'info', VERSIONS => 3}
-- 查询时携带版本参数以查看多版本数据
get 'student', '1001', {COLUMN => 'info:name', VERSIONS => 3}
命名空间(Namespace)操作
命名空间用于逻辑隔离不同业务的表,类似关系型数据库中的 database。
- 创建命名空间:
create_namespace 'biz_data' - 删除命名空间(仅限空空间):
drop_namespace 'biz_data' - 查看命名空间详情:
describe_namespace 'biz_data' - 列出所有命名空间:
list_namespace - 在命名空间内建表:
create 'biz_data:user_info', 'cf' - 查看某命名空间下的所有表:
list_namespace_tables 'biz_data'