hbase命令行操作
1.进入命令行
hbase shell
2.基础命令
查看帮助信息
help
--查看版本信息
--version
--查看hbase集群状态
--status
--查看当前用户
--whoami
3.命名空间命令
=-查看所有命名空间
--list_namespace
--查询指定命名空间的表
--list_namespace_tables '命名空间名'
--创建命名空间
--create_namespace 'my_ns'
4.表操作命令
4.1创建hbase表
--创建hbase表时需要指定一个至少列族,不需要指定列
--create 'hbase表名','列族名1','列族名2',...'列族名N'
--如果希望指定命名空间创建hbase表 需要在表名前指定命名空间
create 'my_ns:student','info'
--创建customer表 表中有base和order这两个列族
create 'customer','base','order'
4.2列出所有表
list
--以上创建表的命令会将表创建在defalut命名空间
4.3 禁用表和查询表是否被禁用
--禁用表
--disable '表名'
--查询表是否被禁用
is_disabled '表名'
4.4删除hbase表
--删除的表需要是禁用状态
--drop '表名'
4.5启用表和查询表是否被启用
--启用表
--enable '表'
--查询表是否被启用
--is_enabled '表'
4.6查询表的信息
--desc '表名'
4.7 修改表
--使用alter命令可以修改已创建的hbase表信息
4.7.1 修改列族的版本信息
--如果默认情况下 列族中的VERSIONS=1 表示该列族下的所有列都只保留最新的数据
如果希望将版本修改 可以执行以下命令
--修改base列族 将版本改为3
--alter 'customer',{NAME => 'base',VERSIONS => '1'}
--修改hbase表中的列族信息时如果该表对应的列族数据比较多时修改所需要的时间会比较漫长
4.7.2 增加表中列族
alter 'customer','info'
alter 'my_ns:student','father'
alter 'my_ns:student','mother'
4.7.3 删除表中列族
alter 'customer',{NAME =>'order',METHOD=>'delete'}
alter 'customer',{NAME =>'base',METHOD=>'delete'}
--hbase表中至少有一个列族 如果需要删除表中唯一的列族 命令执行时会报错
4.8验证表是否存在
--exists '表名'
exists 'customer'
5.表中数据的操作
5.1添加数据/修改数据
--put '表名','Rowkey','列族:列名','列的值'
put 'my_ns:student','s001','info:name','zhangsan'
put 'my_ns:student','s001','father:name','zhangyi'
put 'my_ns:student','s001_20240716','info:score','80'
put 'my_ns:student','s001_20240717','info:score','98'
put 'my_ns:student','s001','info:sex','man'
put 'my_ns:student','s001','info:age','20'
--插入数据后,数据目前只存储在内存中,还没有写到hdfs,可以使用刷新命令强制写到hdfs
flush 'my_ns:student'
--强制刷新后,hdfs上出现强制写入的文件 但该文件是二进制文件 无法阅读
可以使用hbase命令查看
hbase hfile -v -p -f /hbase/data/my_ns/student/35260ff00c11d8eea641112ed32edd04/info/e270edc77426417e97e84a52644c8804
--修改已有数据
put my_ns:student','s001','info:name','zhangsansan'
5.2 查看表中的数据
--1.get '表名','Rowkey'
get 'my_ns:student','s001'
get 'my_ns:student','s001_20240716'
--2.get '表名','Rowkey','列族'
get 'my_ns:student','s001','info'
--3.get '表名','Rowkey','列族:列名'
get 'my_ns:student','s001','info:age'
5.3 计算表中数据的总数
--计算表中的Rowkey的个数
count 'my_ns:student'
5.4扫描表中的数据
--扫描表中所有的数据
scan 'my_ns:student'
5.5删除表中的数据
--delete '表名','Rowkey','列族:列名'
delete 'my_ns:student','s001','info:age'
--delete命令不会马上删除对应的列数据,只会在该列数据上打上删除的标识,当hbase进行数据合并时,才会真正删除该列数据
5.6清空表中数据
--truncate '表名'
truncate 'my_ns:student'