使用HBase Shell连接HBase普通集群
用户在弹性云服务器里可以通过手动安装客户端或一键部署客户端的方法,使用HBase Shell访问集群。推荐使用一键部署客户端的方法。如果集群开启了安全通道,连接集群的方法请参考HBase安全集群连接步骤。
使用限制
- HBase集群与弹性云服务器具有相同区域、可用区、VPC。
- HBase集群与弹性云服务器具有相同安全组。
- 弹性云服务器安全组中添加本地主机IP地址。
一键部署客户端
- 准备Linux弹性云服务器。
使用一键部署客户端工具,建议Linux弹性云服务器的操作系统类型为EulerOS,CentOS,Ubuntu和SUSE。具体操作请参见准备弹性云服务器。
- 下载客户端一键部署工具。
使用SSH登录工具(如PuTTY)通过“弹性IP”远程登录到Linux弹性云服务器,然后执行如下命令,获取客户端一键部署工具:
curl -O -k "https://cloudtable-publish.obs.myhuaweicloud.com/quick_start_hbase_shell.sh"
此命令适用于HBase 1.x版本。
curl -O -k "https://cloudtable-publish.obs.myhuaweicloud.com/cloudtable-client/quick_start_hbase_shell.sh"
- 此命令适用于HBase 2.x版本。
- 一键部署包内置校验文件。
- 准备集群访问地址。
登录表格存储服务管理控制台,在左侧导航树单击集群管理,然后在集群列表中找到所需要的集群,并获取相应的“ZK链接地址(内网)”。该参数值就是集群访问地址,如图1所示。
- 使用工具部署客户端。
请将以下命令中的"$zookeeper_address"参数替换为3获取的ZK链接地址,然后在弹性云服务器命令行窗口,执行该命令一键部署客户端。
- 普通集群一键部署命令。
source quick_start_hbase_shell.sh $zookeeper_address
- 安全集群一键部署命令。
source quick_start_hbase_shell $zookeeper_address enable
- 普通集群一键部署命令。
- 启动Shell访问集群。
在上一步执行source命令自动部署客户端后,就已自动启动了HBase Shell。在后续使用过程中,您也可以执行“bin/hbase shell”命令启动Shell访问集群。
手动安装客户端
- 准备Linux弹性云服务器。
具体操作请参见准备弹性云服务器章节中的以下内容:
- 下载客户端和客户端校验文件。
登录表格存储服务管理控制台,在左侧导航树单击“帮助”,然后在页面右侧单击“客户端下载”和“客户端校验文件”,下载客户端安装包和客户端校验文件。
- 安装客户端并校验客户端。
- 使用文件传输工具(如WinSCP工具)将客户端安装包上传到Linux弹性云服务器。
- 使用SSH登录工具(如PuTTY)通过“弹性IP”远程登录到Linux弹性云服务器。
具体登录操作步骤请参见《弹性云服务器用户指南》中的“登录Linux弹性云服务器 > SSH密码方式登录”。
登录后执行如下命令解压安装包:
cd <客户端安装包存放路径> tar xzvf hbase-1.3.1-bin.tar.gz
cd <客户端安装包存放路径> tar xzvf hbase-2.4.14-bin.tar.gz
其中,<客户端安装包存放路径>请替换为实际的客户端存放路径。
- 解压“客户端校验文件”,与客户端解压在同一个目录下。
- 解压“客户端校验文件”。
cd <客户端校验文件存放路径> tar xzvf Client_sha256.tar.gz
- 获取客户端校验码。
sha256sum HBase_Client_2.4.14.tar.gz
- 查看客户端校验文件中的校验码,并与客户端校验码进行对比。如果对比结果一致,代表客户端未被篡改,如果对比结果不一致,则代表客户端篡改。
less HBase_Client_2.4.14.tar.gz.sha256
- 解压“客户端校验文件”。
- 配置zookeeper地址到配置文件。
在客户端解压目录下,打开“hbase/conf/hbase-site.xml”文件,配置如下参数:
- “hbase.zookeeper.quorum”:该参数值为在集群管理列表中查找的对应集群的“ZK链接地址(内网)”。
登录表格存储服务管理控制台,在左侧导航树单击集群管理,然后在集群列表中找到所需要的集群,并获取相应的“ZK链接地址(内网)”。如下图所示:
图2 查看ZK链接地址 - “mapreduce.cluster.local.dir”:请先检查是否存在该配置项,如果不存在,请添加该配置项。
未开启安全通道加密集群客户端配置示例如下:
<configuration> <property> <name>hbase.zookeeper.quorum</name> <value>xxx-zk1.cloudtable.com:2181,xxx-zk2.cloudtable.com:2181,xxx-zk3.cloudtable.com:2181</value> </property> <property> <name>mapreduce.cluster.local.dir</name> <value>${hadoop.tmp.dir}/mapred/local</value> </property> </configuration>
开启安全通道加密集群客户端配置请参见HBase安全通道加密章节。
- “hbase.zookeeper.quorum”:该参数值为在集群管理列表中查找的对应集群的“ZK链接地址(内网)”。
- 启动Shell访问集群。
执行“bin/hbase shell”,启动Shell访问集群。
HBase入门使用
本节介绍常用的HBase Shell命令。更多的HBase Shell命令,请参见https://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/。
- 获取帮助。
在HBase shell执行“help”命令,将会返回所有命令信息,以及基本命令的说明和使用方法。
hbase(main):001:0> help
- 创建表。
执行“create”命令创建一张表,创建表时必须指定表的名称和ColumnFamily名称。
hbase(main):007:0> create 'cloudtable','cf' 0 row(s) in 1.5530 seconds => Hbase::Table - cloudtable
- 查询表。
hbase(main):009:0> list TABLE cloudtable 1 row(s) in 0.0060 seconds => ["cloudtable"]
- 插入记录。
执行“put”命令往指定表插入一条记录,需要指定表的名称,主键,自定义列,以及插入的具体值。
hbase(main):004:0> put 'cloudtable','row1','cf:a','value1' 0 row(s) in 0.2720 seconds
命令中各参数分别代表如下含义:
- cloudtable:表的名称
- row1:主键
- cf:a:自定义的列
- value1:插入的值
- 扫描记录。
执行“scan”命令扫描表,扫描时需要指定表的名称,即可以全表扫描,也可以指定范围扫描。
hbase(main):001:0> scan 'cloudtable' ROW COLUMN+CELL row1 column=cf:a, timestamp=1504866237162, value=value1 1 row(s) in 0.2420 seconds
- 如果插入数据时,设置了CELL的TTL,TTL属性不支持查看,但是可以通过验证设置的TTL是否生效来确认。
- 如果插入数据时未设置CELL的TTL,此时系统会自动插入当前时间为时间戳。
- 查询单条记录。
执行“get”命令查询单条记录,必须指定查询表的名称和主键。
hbase(main):001:0> get 'cloudtable','row1' COLUMN CELL cf:a timestamp=1504866237162, value=value1 1 row(s) in 0.2280 seconds
- 禁用表。
如果需要修改表,比如删除表,修改表的设置,需要先对表进行禁用。执行“disable”命令禁用表。在禁用表时执行操作会报ERROR,并提示表被禁用。
hbase(main):002:0> disable 'cloudtable' 0 row(s) in 2.3550 seconds
- 使能表。
与禁用表相对应的,在禁用表后,如果需要使用表,就需要执行“enable”命令使能表。
hbase(main):004:0> enable 'cloudtable' 0 row(s) in 1.2500 seconds
- 删除表。
当不再需要表时,可以执行“drop”命令删除表。删除表之前需要禁用表,不然会报ERROR,并提示表被使能。删除表将会导致数据丢失,请谨慎操作。
hbase(main):007:0> disable 'cloudtable' 0 row(s) in 2.2380 seconds hbase(main):008:0> drop 'cloudtable' 0 row(s) in 1.2600 seconds
- 退出HBase shell。
hbase(main):009:0> quit