HBase Shell 操作
命名 | 描述 | 语法 |
---|---|---|
help ‘命名名’ | 查看命令的使用描述 | help ‘命令名’ |
whoami | 我是谁 | whoami |
version | 返回hbase版本信息 | version |
status | 返回hbase集群的状态信息 | status |
table_help | 查看如何操作表 | table_help |
create | 创建表 | create ‘表名’, ‘列族名1’, ‘列族名2’, ‘列族名N’ |
alter | 修改列族 | 添加一个列族:alter ‘表名’, ‘列族名’ 删除列族:alter ‘表名’, {NAME=> ‘列族名’, METHOD=> ‘delete’} |
describe | 显示表相关的详细信息 | describe ‘表名’ |
list | 列出hbase中存在的所有表 | list |
exists | 测试表是否存在 | exists ‘表名’ |
put | 添加或修改的表的值 | put ‘表名’, ‘行键’, ‘列族名’, ‘列值’ put ‘表名’, ‘行键’, ‘列族名:列名’, ‘列值’ |
scan | 通过对表的扫描来获取对用的值 | scan ‘表名’ 扫描某个列族: scan ‘表名’, {COLUMN=>‘列族名’} 扫描某个列族的某个列: scan ‘表名’, {COLUMN=>‘列族名:列名’} 查询同一个列族的多个列: scan ‘表名’, {COLUMNS => [ ‘列族名1:列名1’, ‘列族名1:列名2’, …]} |
get | 获取行或单元(cell)的值 | get ‘表名’, ‘行键’ get ‘表名’, ‘行键’, ‘列族名’ |
count | 统计表中行的数量 | count ‘表名’ |
incr | 增加指定表行或列的值 | incr ‘表名’, ‘行键’, ‘列族:列名’, 步长值 |
get_counter | 获取计数器 | get_counter ‘表名’, ‘行键’, ‘列族:列名’ |
delete | 删除指定对象的值(可以为表,行,列对应的值,另外也可以指定时间戳的值) | 删除列族的某个列: delete ‘表名’, ‘行键’, ‘列族名:列名’ |
deleteall | 删除指定行的所有元素值 | deleteall ‘表名’, ‘行键’ |
truncate | 重新创建指定表 | truncate ‘表名’ |
enable | 使表有效 | enable ‘表名’ |
is_enabled | 是否启用 | is_enabled ‘表名’ |
disable | 使表无效 | disable ‘表名’ |
is_disabled | 是否无效 | is_disabled ‘表名’ |
drop | 删除表 | drop的表必须是disable的 disable ‘表名’ drop ‘表名’ |
shutdown | 关闭hbase集群(与exit不同) | |
tools | 列出hbase所支持的工具 | |
exit | 退出hbase shell |
基本操作
1.进入 HBase 客户端命令行bin/hbase shell
2.查看帮助命令
help
命名空间的操作
1.查看当前有哪些命名空间
list_namespace
2.创建命名空间
create_namespace '命名空间'
例:create_namespace ‘bigdata’
3.命名空间信息描述
describe_namespace '命名空间'
例:describe_namespace ‘bigdata’
4.列出命名空间下的表
list_namespace_tables '命名空间'
例:list_namespace_tables ‘bigdata’
5.删除命名空间
drop_namespace '命名空间'
例:drop_namespace ‘bigdata’
注意:命名空间下有表会报错
表的操作
1.查看除hbase系统外所有命名空间下的表
list
2.创建表
create '[命名空间:]表名','列族名'[,'列族名'........] 不带命名空间,默认default
例:
create ‘student’,‘info’
create ‘bigdata:student1’,‘info1’,‘info2’
3.描述表信息
describe '[命名空间:]表名' 不带命名空间,默认default
例:
describe ‘student’
describe ‘bigdata:student1’
4.变更表信息
alter '[命名空间:]表名' , { NAME => '列族名', VERSIONS => n }, { MAX_FILESIZE => '大小' }, { METHOD => 'delete', NAME => 列族名' }......
例:将 info 列族中的数据可以存放 3 个版本:
alter ‘student’,{NAME=>‘info’,VERSIONS=>3}
alter ‘bigdata:student1’,{NAME=>‘info’,VERSIONS=>3}
5.禁用表
disable '[命名空间:]表名'
例:disable ‘student’
6.删除表
需要先让该表为 disable 状态,才能 drop 这个表
drop '[命名空间:]表名'
例:drop ‘student’
提示:如果直接 drop 表,会报错:ERROR: Table student is enabled. Disable it first.
7.插入数据到表
put '[命名空间:]表名','rowkey','列族:列名','值'
例:
put ‘student’,‘1001’,‘info:sex’,‘male’
put ‘student’,‘1001’,‘info:age’,‘18’
put ‘student’,‘1002’,‘info:name’,‘Janna’
put ‘student’,‘1002’,‘info:sex’,‘female’
put ‘student’,‘1002’,‘info:age’,‘20’
8.扫描查看表数据
scan '[命名空间:]表名' ,{STARTROW => 'rowkey', STOPROW => 'rowkey' }|{ RAW => true , VERSIONS => 10 }。。。。。
例:
scan ‘student’
scan ‘student’,{STARTROW => ‘1001’, STOPROW => ‘1001’}
scan ‘student’,{STARTROW => ‘1001’}
查询已经过时或覆盖但还未删除的数据
scan ‘student’,{ RAW => true , VERSIONS => 10 }
9.查看“指定行”或“指定列族:列”的数据
get '[命名空间:]表名','rowkey','列族:列名'
例:
get ‘student’,‘1001’
get ‘student’,‘1001’,‘info’
get ‘student’,‘1001’,‘info:name’
10.查看指定个数版本的数据(若查看指定个数超出指定存储个数,最多显示指定存储个数)
get '[命名空间:]表名','rowkey',{COLUMN => '列族:列名', VERSIONS => n}
例:
get ‘student’,‘1001’,{COLUMN => ‘info:name’, VERSIONS => 3}
11.统计表数据行数
count '[命名空间:]表名'
例:
count ‘student’
12.更新指定字段的数据
put '[命名空间:]表名','rowkey','列族:列名','值',timestamp
例:
put ‘student’,‘1001’,‘info:name’,‘Nick’
put ‘student’,‘1001’,‘info:age’,‘100’
put ‘student’,‘1001’,‘info:age’,‘20’,1640095990224
13.删除数据
删除某 rowkey 的全部数据:
deleteall '[命名空间:]表名','rowkey'
deleteall ‘student’,‘1001’
删除某 rowkey 的某一列数据:
delete '[命名空间:]表名','rowkey','列族:列名'
delete ‘student’,‘1002’,‘info:sex’
14.清空表数据
truncate '[命名空间:]表名'
例:
truncate ‘student’
提示:清空表的操作顺序为先 disable,然后再 truncate。