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'

相关推荐
Ai 编码助手22 分钟前
MySQL中distinct与group by之间的性能进行比较
数据库·mysql
Json_1817901448036 分钟前
An In-depth Look into the 1688 Product Details Data API Interface
大数据·json
陈燚_重生之又为程序员38 分钟前
基于梧桐数据库的实时数据分析解决方案
数据库·数据挖掘·数据分析
caridle39 分钟前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
白云如幻41 分钟前
MySQL排序查询
数据库·mysql
萧鼎42 分钟前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
^velpro^44 分钟前
数据库连接池的创建
java·开发语言·数据库
荒川之神1 小时前
ORACLE _11G_R2_ASM 常用命令
数据库·oracle
IT培训中心-竺老师1 小时前
Oracle 23AI创建示例库
数据库·oracle
小白学大数据1 小时前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫