快速创建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 |
步骤一:购买HBase集群
- 登录表格存储服务管理控制台。
- 控制台左上角选择区域。
- 单击集群管理界面右上角的“购买集群”,进入购买集群页面配置相关参数(安全组规则配置端口请参见表2)。
- 单击“立即购买”,进入确认规格页面,确认无误,单击“完成”。
- 返回集群列表查看创建集群进度,当集群状态为“服务中”时,集群创建成功,详细参见《用户指南》中“使用HBase > 创建HBase集群”。
步骤三:添加安全组
- 获取本地主机IP,按键盘中“win+R”,弹出运行界面。
- 在输入框中输入“cmd”,单击“确定”,进入cmd运行窗口,
- 在命令窗口输入“ipconfig”,单击“回车”,查询本机IP。
- 购买弹性云服务器,登录ECS控制台。
- 进入“弹性云服务器 ”列表页面,单击“弹性云服务名称 > 基本信息 > 安全组名称 > 入方向规则”,进入入方向规则页面。
- 单击页面右上角的“添加规则”,弹出“添加入方向规则”页面。
- 源地址中填写步骤3中获取的本地IP地址。单击“确定”安全组添加完成。
步骤四:下载HBase客户端和客户端校验文件
- 登录表格存储服务控制台。
- 控制台左上角选择区域。
- 单击“帮助”,进入帮助页面。
- 单击帮助页面右侧“常用链接 > hbase客户端下载”(根据版本下载客户端),下载客户端安装包。
- 单击“客户端校验文件下载”,下载校验文件。
步骤五:安装客户端并校验客户端
- 使用SSH登录工具(如PuTTY)通过“弹性IP”远程登录到Linux弹性云服务器。
- 将步骤二中下载的客户端传输到Linux弹性云服务器。
- 登录后执行如下命令解压安装包:
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链接地址”,配置在“hbase/conf/hbase-site.xml”文件。
图1 配置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 Shell连接HBase安全集群章节。
- “hbase.zookeeper.quorum”:该参数值为在集群管理列表中查找的对应集群的“ZK链接地址”。
- 启动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'