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 '表名'