Lindorm Shell是Lindorm提供的HBase客户端工具。Lindorm Shell基于HBase Java API连接Lindorm宽表引擎,进行创建表、插入、查询等数据操作。本文介绍如何下载Lindorm Shell并连接Lindorm宽表引擎。
前提条件
已安装Java环境,要求安装JDK 1.8及以上版本。
已将客户端IP地址添加至云原生多模数据库 Lindorm实例的白名单中,添加方法请参见设置白名单。
注意事项
通过Lindorm Shell连接Lindorm宽表引擎仅支持简单的DDL操作和数据读写操作,不支持的操作请参见HBase API使用限制。
请勿使用HBase API的方式去访问基于SQL创建的宽表,可能会出现乱码。
推荐在Linux或者macOS操作系统使用Lindorm Shell。
在Windows系统使用Lindorm Shell时,可能会遇到报错或缺少库的问题,请根据报错信息自行在系统中添加相应的库。
操作步骤
下载Lindorm Shell工具。
在Lindorm管理控制台左上角,选择实例所属的地域。在实例列表页,单击目标实例ID。
在左侧导航栏单击数据库连接,单击宽表引擎页签。
单击HBase兼容地址,然后单击Lindorm Shell下载。
执行命令解压Lindorm Shell压缩包,将压缩包解压至目标文件(以
alihbase-2.0.18
文件为例)。tar zxvf hbaseue-shell.tar.gz
配置连接参数。
进入
alihbase-2.0.18/conf
目录,打开hbase-site.xml
文件。vi hbase-site.xml
配置Lindorm宽表引擎的连接地址和用户名密码。
<configuration> <property> <name>hbase.zookeeper.quorum</name> <value>ld-bp17j28j2y7pm****-proxy-lindorm-pub.lindorm.rds.aliyuncs.com:30020</value> </property> <property> <name>hbase.client.username</name> <value>testuser</value> </property> <property> <name>hbase.client.password</name> <value>password</value> </property> </configuration>
参数说明:
hbase.zookeeper.quorum:Lindorm宽表引擎的使用HBase Java API访问连接地址。
专有网络地址:适用于Lindorm Shell安装在ECS实例上,且ECS实例与Lindorm实例位于同一VPC。
公网地址:适用于Lindorm Shell安装在本地,或安装在ECS实例但ECS与Lindorm实例不在同一VPC。
hbase.client.username和hbase.client.password:访问Lindorm宽表引擎的用户名和密码。如果忘记密码,可以通过宽表引擎的集群管理系统修改密码,具体操作请参见修改用户密码。
通过Lindorm Shell访问Lindorm宽表引擎。
进入
alihbase-2.0.18/bin
目录执行以下命令。./hbase shell
返回如下信息表示访问成功。
Version 2.0.18, r08b8d58a9d6ce89765d5ebe2ddff425aed644c16, Mon Feb 1 12:46:39 CST 2021 Took 0.0034 seconds
说明Shell的使用方法,请参见Lindorm Shell参考。
Lindorm Shell参考
命令参考
Shell的使用命令更多请参见Apache HBase Shell介绍。
数据定义语言
create:创建表。
list:展示所有表。
disable:禁用表。
is_disabled:验证表是否被禁用。
enable:启用表。
is_enabled:验证表是否已启用。
describe:展示指定表的详细信息,包括表属性、表结构等。
alter:修改表。
exists:用于验证表是否存在。
drop:删除指定表。
数据操作语言
put:用于更新特定单元格中的值。
get:用于获取指定行或单元格的内容。
delete:用于删除表中单元格的值。
deleteall:用于删除指定行的所有单元格。
scan:用于扫描并返回表数据。
count:用于计算并返回表中的行数。
truncate_preserve:清空表中的数据,其内部实现是将指定的表下线和删除,再进行重建,并且Region分区与旧表保留一致。
进入和退出Shell环境
进入Shell环境。
bin/hbase shell
退出Shell环境。
quit
操作参考
建表并插入数据
创建表。创建时必须输入表和列族的名称。
create '表名', '列族名'
示例如下:
//创建一个名称为test,列族名为cf的表 create 'test', 'cf'
插入数据。
put '表名', 'Rowkey', '列族名:列名', '数值'
示例如下:
put 'test', 'row1', 'cf:a', 'value1' put 'test', 'row2', 'cf:b', 'value2' put 'test', 'row3', 'cf:c', 'value3'
说明row1
为表test
的Rowkey,cf:a
表示自定义列的列族名和列名,value1
为值。
查询
查询所有表的信息。支持使用正则表达式来过滤表。
list list 'abc.*' list 'test'
查询指定表的数据。
scan
是一种访问HBase数据的方式,它非常的灵活,scan
操作可以用来扫描全表或查询固定范围的数据。查询速度会比查询单条(使用get
)数据略慢一些。执行以下语句可以查询test表的数据。scan '表名'
示例如下:
scan 'test'
返回结果:
ROW COLUMN+CELL row1 column=cf:a, timestamp=1421762485768, value=value1 row2 column=cf:b, timestamp=1421762491785, value=value2 row3 column=cf:c, timestamp=1421762496210, value=value3 3 row(s) in 0.0230 seconds
查询表的单条数据。
get '表名', 'Rowkey'
示例如下:
get 'test', 'row1'
返回结果:
COLUMN CELL cf:a timestamp=1421762485768, value=value1 1 row(s) in 0.0350 seconds
禁用和启用表
禁用和启用指定表。如果您想要对一张表执行删除、修改设置或其他操作,请先使用disable命令禁用这张表。在删除或者修改配置完成后,再使用enable命令启用表,重新使用这张表。
disable '表名'
enable '表名'
删除表
删除指定表。
drop '表名'