HBase shell命令知识总结
1. HBase访问方式
- shell命令行客户端
- java api
本文主要总结关于shell命令行的知识点
- 不知道如何安装Hbase的可以看我另外一篇博文 HBase安装
PS:
- 可以横向对比,很多框架特别是运行在服务器端的,都会提供至少2种客户端,命令行客户端和代码api,部分如mysql还会有图形化客户端。
- 针对数据库框架的操作,主要就是查看、DML、DDL、如果比较强大还会有权限、数据备份等操作功能。
2. HBase的Shell概览
- 开启客户端
PS:
- 注意需要配置环境变量,否则就只能去HBase安装目录的bin目录下执行指令
- 注意使用shell客户端之前,先启动HBase集群(使用安装目录bin目录下的start-hbase.sh 指令,需要手动在集群中启动第二master节点服务 ./hbase-daemon.sh start master)
- 注意HBase版本是2.2.5(2020年5月份),官方最新版本是2.3.1(2020年8月份)
hbase shell
输入后出现如下图
2. 使用帮助命令
help
出现如下图所示,这些是hbase的shell命令组,按照功能进行了划分。
如果需要对某个命令进行帮助文档查询,直接help ‘xxx命令名’ 即可
help 'xxx命令名'
有文字说明,也有使用案例,还是很到位的文档支持的
- 退出shell 客户端
quit
这时候就退出了hbase shell客户端
- 输入某个指令进行操作(按照帮助文档的说明进行即可注意不同版本的shell命令以及接口api可能会有差异,所以最好的方式是对主要的功能命令有一个印象但不强求记住,其他命令查阅文档即可)
list_namespace
3. Shell命令细分
- 可以通过命令行客户端访问数据,也可以通过java api等访问数据
- 客户端提供了访问hbase的接口
- 提供cache提高访问hbase的效率 , 比如region的信息。因为进行数据读写都需要先去zookeeper请求元数据,这时候会把历史的meta请求数据缓存来提升效率。
- 以下命令都是按照官网文档来进行说明,如果英语,更建议直接阅读官方文档,这样最新。我会基于
命令行使用方式
- 参数的分隔符是逗号 ,
- 参数形式是 {‘key1’ => ‘value1’, ‘key2’ => ‘value2’, …},常见的key有NAME, VERSIONS, COMPRESSION。常量不需要使用单引号括起来如数字常量,但字符串需要单引号括起来
- 命令输入后,按下enter键就执行
- 如果使用二进制形式的key,参考以下用法(不是很建议,需要这么操作建议在代码中进行)
hbase> get ‘t1’, “key\x03\x3f\xcd”
hbase> get ‘t1’, “key\003\023\011”
hbase> put ‘t1’, “test\xef\xff”, ‘f1:’, “\x01\x33\x40”
3.1 通用命令general
-
processlist,
查询是否有进行中的HBase任务
-
status,
查看HBase集群状态和信息
-
table_help,
关于table(表)操作的一些介绍和常见指令
-
version,
hbase软件版本以及发布日期
-
whoami
查询当前用户账号信息,
在数据库软件中,用户账号、密码和权限是直接挂钩的。默认是使用root权限登录进行操作,实际生产环境会有更严格的限制
3.2 数据定义语言(data definition language)ddl
3.2.1 alter,
如上所示,可以使用alter命令修改表中的列族(增加、删除、修改),也可以修改表的配置信息
- 增加一个列族
alter 'doit:tb_shoes', NAME=>'cf3', VERSIONS=>5
之前
之后