从零开始使用HBase
华为云表格存储服务(CloudTable)是基于Apache HBase提供的全托管NoSQL服务,集成OpenTSDB和GeoMesa,提供毫秒级随机读写能力,适用于海量(半)结构化数据存储。可被广泛应用于物联网、车联网、金融、智慧城市等行业 。
本指南提供从零开始使用HBase的操作指导:通过HBase Shell命令实现创建表,往表中插入数据,修改表,读取表数据,删除表中数据以及删除表的功能。
Step1 创建CloudTable集群
说明
① 您也可以通过访问以下地址登录表格存储服务管理控制台:
1
登录CloudTable管理控制台

2
购买集群


单击图片可查看原图


Step2 配置集群
步骤
① 选择“区域”和“可用区”。
② 设置集群名称及I/O类型。
本示例中,集群名称设为 “cloudtable-demo”。 “I/O类型”选择“超高I/O”。
1
集群配置


单击图片可查看原图


Step3 配置网络和软件
步骤
① 配置网络。
- 虚拟私有云:选择使用已有的虚拟私有云网络,或者单击“查看虚拟私有云”进入虚拟私有云控制台新建一个新的虚拟私有云。
- 子网:创建虚拟私有云时会默认创建一个子网,可以选择对应的子网名。
- 安全组:默认选择即可。
② 配置软件。
- 高级特性:可选择是否开启相关特性。本示例选择不开启,集群创建成功后也可以开启。注意,开启后暂不支持关闭。
- IAM统一身份认证:如果需要IAM认证模式的安全集群,请开启。本示例不开启,表示普通模式,即非安全模式。
IAM认证方式的安全性高于普通模式,建议CloudTable集群开启IAM认证功能,并在客户端或应用程序代码中采用IAM认证方式连接集群。
③配置计算单元数量。“RS单元数量”默认为2,保留默认值即可。
1
网络配置

2
软件配置


单击图片可查看原图


Step5.a 准备弹性云服务器
1
购买弹性云服务器


单击图片可查看原图


Step5.b 为弹性云服务器配置hosts和DNS,并安装JDK
步骤
① 将Linux ECS的IP配置到/etc/hosts文件,可加速访问CloudTable集群。
以root用户登录Linux ECS,执行“hostname”查询主机名,执行“ifconfig”查询IP,执行“vi /etc/hosts”命令编辑文件,增加主机配置,示例如下(具体步骤见图①):
192.168.0.58 euler.novalocal
127.0.0.1 euler.novalocal
② 为Linux ECS配置DNS服务器地址,用于解析CloudTable集群ZK访问域名。
执行“vi /etc/resolv.conf”命令编辑文件,增加“nameserver”配置。以“华北-北京一”区域为例,配置如下(具体步骤见图②):
nameserver 100.125.1.250
③ 下载并安装JDK 1.8,设置JAVA_HOME环境变量。
请点击这里下载与Linux ECS操作系统匹配的JDK1.8.*版本,下载完成后请将JDK上传至LinuxECS上,并根据安装向导完成JDK安装。
执行以下命令设置JAVA_HOME环境变量,其中${java_home_path}请替换为实际的JDK安装路径,例如/usr/java/jdk1.8.0_151:
export JAVA_HOME=$java_home_path
1
为弹性云服务器配置hosts文件

2
为弹性云服务器配置DNS


单击图片可查看原图


Step6 一键部署HBase Shell客户端
步骤
① 登录Linux弹性云服务器。
②使用curl命令下载客户端一键部署工具。
curl -O -k "http://cloudtable-publish.obs.myhuaweicloud.com/quick_start_hbase_shell.sh"
③获取HBase连接地址,即CloudTable集群的“ZK链接地址”。
请登录表格存储服务管理控制台,单击“集群模式”,在集群列表中找到所需要的集群,并在“ZK链接地址”列获取该集群的ZK链接地址,如图① 所示。
④ 一键部署HBase Shell客户端。
对于未开启IAM认证的集群(本示例未开启),请在弹性云服务器命令行窗口,执行以下命令一键部署客户端,命令中的"$zookeeper_address"参数请替换为③中获取的值。
source quick_start_hbase_shell.sh $zookeeper_address
部署成功后,将会自动启动HBase Shell。
1
查看ZK链接地址


单击图片可查看原图


Step7 执行HBase Shell命令创建表
步骤
示例场景说明:假定开发一个应用程序,用于管理企业中的使用A业务的用户信息,使用HBase客户端实现A业务操作流程如下:
- 创建用户信息表user_info。
- 在用户信息中新增用户的学历、职称信息。
- 根据用户编号查询用户姓名和地址。
- 根据用户姓名进行查询。
- 用户销户,删除用户信息表中该用户的数据。
- A业务结束后,删除用户信息表。
① 在HBase Shell中,执行HBase Shell命令实现A业务。
/tmp/hbase-1.3.1/bin/hbase shell
② 根据用户信息表创建表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','City A'
1
示例表

2
创建表


单击图片可查看原图


Step8 执行HBase Shell命令插入数据并查询
步骤
① 在用户信息表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']}
③ 根据用户姓名进行查询。以查询A用户信息为例,其他用户类似。
scan'user_info',{FILTER=>"SingleColumnValueFilter('i','name',=,'binary:A')"}
④完成查询后,如果不再需要该示例,可以删除用户信息表中的所有用户的信息,然后再删除表。
以删除编号为12005000201的用户数据为例,其他用户类似。
delete'user_info','12005000201','i’
删除用户信息表:
disable'user_info';drop 'user_info'
1
插入数据并查询

2
完成查询后删除表


单击图片可查看原图


Step9 清除资源
步骤
完成示例后,如果不再需要示例集群,您可以将示例集群删除。
① 登录表格存储服务管理控制台,在左侧导航树,单击“集群模式”。
② 在集群管理列表中,选中需要删除的集群名,在对应的“操作”列中,单击
在弹出的对话框中,勾选了解删除集群的影响后,单击“确定”即可删除集群。
1
删除集群


单击图片可查看原图


