快速创建HBase集群并进行离线数据查询
HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。本章节提供从零开始使用HBase的操作指导:通过HBase Shell命令实现创建表,往表中插入数据,修改表,读取表数据,删除表中数据以及删除表的功能。
背景信息
假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,使用HBase客户端实现A业务操作流程如下:
- 创建用户信息表user_info。
- 在用户信息中新增用户的学历、职称信息。
- 根据用户编号查询用户姓名和地址。
- 根据用户姓名进行查询。
- 用户销户,删除用户信息表中该用户的数据。
- A业务结束后,删除用户信息表。
编号 |
姓名 |
性别 |
年龄 |
地址 |
---|---|---|---|---|
12005000201 |
A |
Male |
19 |
IPA, IPB |
12005000202 |
B |
Female |
23 |
IPC, IPD |
12005000203 |
C |
Male |
26 |
IPE, IPF |
12005000204 |
D |
Male |
18 |
IPG, IPH |
12005000205 |
E |
Female |
21 |
IPI, IPJ |
12005000206 |
F |
Male |
32 |
IPK, IPL |
12005000207 |
G |
Female |
29 |
IPM, IPN |
12005000208 |
H |
Female |
30 |
IPO, IPP |
12005000209 |
I |
Male |
26 |
IPQ, IPR |
12005000210 |
J |
Male |
25 |
IPS, IPT |
准备工作
- 已注册华为账号并开通华为云,具体请参见注册华为账号并开通华为云,且在使用CloudTable前检查账号状态,账号不能处于欠费或冻结状态。
- 已创建虚拟私有云和子网,参见创建虚拟私有云和子网。
步骤一:购买HBase集群
- 登录表格存储服务控制台。
- 控制台左上角选择区域。
- 单击“集群管理”进入集群管理界面。
- 单击集群管理界面右上角的“购买集群”,进入购买集群页面配置相关参数(安全组规则配置端口请参见HBase安全规则组)。
- 单击“立即购买”,进入确认规格页面,确认无误,单击“完成”。
- 返回集群列表查看创建集群进度,当集群状态为“服务中”时,集群创建成功,详细参见创建HBase集群。
步骤二:准备弹性云服务器
- 购买弹性云服务器,登录ECS控制台。
- 控制台左上角选择区域。
- 单击左侧的服务列表,选择“计算 > 弹性云服务器 ECS”,进入弹性云服务器管理界面。
- 单击页面右上角“购买弹性云服务器”,进入配置界面。
- 配置弹性云服务器参数:基础配置、实例、操作系统、存储备份、网络、安全组、公网访问、云服务器管理、高级配置、购买量。
- 参数配置后,勾选“协议”并单击“立即购买”。ECS创建成功后会默认开机。
具体请参见弹性云服务“自定义购买ECS”章节。
为了确保集群连接成功VPC、安全组必须与ECS保持一致。
步骤三:添加安全组
- 获取本地主机IP,按键盘中“win+R”,弹出运行界面。
- 在输入框中输入“cmd”,单击“确定”,进入cmd运行窗口,
- 在命令窗口输入“ipconfig”,单击“回车”,查询本机IP。
- 登录ECS服务控制台。
- 进入“弹性云服务器 ”列表页面,单击“弹性云服务名称 > 基本信息 > 安全组名称 > 入方向规则”,进入入方向规则页面。
- 单击页面右上角的“添加规则”,弹出“添加入方向规则”页面。
- 源地址中填写步骤3中获取的本地IP地址。单击“确定”安全组添加完成。
步骤四:安装客户端并校验客户端
安装客户端有一键部署客户端、手动安装部署两种方法,此处以一键部署为例。
- 下载客户端一键部署工具。使用SSH登录工具(如PuTTY)通过“弹性IP”远程登录到Linux弹性云服务器。
具体登录操作步骤请参见《弹性云服务器用户指南》中的“登录Linux弹性云服务器 > SSH密码方式登录”。
然后执行如下命令,获取客户端一键部署工具: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链接地址(内网)”,该参数值就是集群访问地址。
- 使用工具部署客户端。请将以下命令中的"$zookeeper_address"参数替换为2获取的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访问集群。
步骤五:运行HBase客户端命令,实现A业务
- 根据表1创建用户信息表user_info并添加相关数据。
create 'user_info',{NAME => 'i'}
以增加编号12005000201的用户信息为例,其他用户信息参照如下命令依次添加:
put 'user_info','12005000201','i:name','A' put 'user_info','12005000201','i:gender','Male' put 'user_info','12005000201','i:age','19' put 'user_info','12005000201','i:address','IPA, IPB'
- 在用户信息表user_info中新增用户的学历、职称信息。
以增加编号为12005000201的用户的学历、职称信息为例,其他用户类似。
put 'user_info','12005000201','i:degree','master' put 'user_info','12005000201','i:pose','manager'
- 根据用户编号查询用户姓名和地址。
以查询编号为12005000201的用户姓名和地址为例,其他用户类似。
scan 'user_info',{STARTROW=>'12005000201',STOPROW=>'12005000201',COLUMNS=>['i:name','i:address']}
- 根据用户姓名进行查询。
scan 'user_info',{FILTER=>"SingleColumnValueFilter('i','name',=,'binary:A')"}
- 删除用户信息表中该用户的数据。
所有用户的数据都需要删除,以删除编号为12005000201的用户数据为例,其他用户类似。
delete 'user_info','12005000201','i'
- 删除用户信息表。
disable 'user_info';drop 'user_info'