文档首页/ 表格存储服务 CloudTable/ 用户指南(联盟区域)/ 快速入门/ 快速创建HBase集群并进行离线数据查询
更新时间:2026-01-09 GMT+08:00

快速创建HBase集群并进行离线数据查询

HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。本章节提供从零开始使用HBase的操作指导:通过HBase Shell命令实现创建表,往表中插入数据,修改表,读取表数据,删除表中数据以及删除表的功能。

背景信息

假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,使用HBase客户端实现A业务操作流程如下:

  • 创建用户信息表user_info。
  • 在用户信息中新增用户的学历、职称信息。
  • 根据用户编号查询用户姓名和地址。
  • 根据用户姓名进行查询。
  • 用户销户,删除用户信息表中该用户的数据。
  • A业务结束后,删除用户信息表。
表1 用户信息

编号

姓名

性别

年龄

地址

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集群

  1. 登录表格存储服务管理控制台。
  2. 控制台左上角选择区域。
  3. 单击集群管理界面右上角的“购买集群”,进入购买集群页面配置相关参数(安全组规则配置端口请参见表2)。
  4. 单击“立即购买”,进入确认规格页面,确认无误,单击“完成”。
  5. 返回集群列表查看创建集群进度,当集群状态为“服务中”时,集群创建成功,详细参见《用户指南》中“使用HBase > 创建HBase集群”。
    表2 HBase安全组规则

    方向

    协议

    端口/范围

    源地址/安全组

    用途

    出方向

    全部

    全部

    0.0.0.0/0

    出方向放行

    入方向

    TCP

    16000

    CloudTable HBase集群所在的安全组

    HMaster RPC端口

    TCP

    16020

    RegionServer RPC端口

    TCP

    2181

    监听ZooKeeper客户端连接监听端口

    TCP

    2888

    Follower连接监听端口

    TCP

    3888

    ZooKeeper选举端口

    TCP

    2000

    Hagent访问端口

步骤二:准备弹性云服务器

  1. 购买弹性云服务器,登录ECS控制台。
  2. 控制台左上角选择区域。
  3. 单击页面右上角“购买弹性云服务器”,进入配置界面。
  4. 配置弹性云服务器参数:基础配置、实例、操作系统、存储备份、网络、安全组、公网访问、云服务器管理、高级配置、购买量。

    VPC、子网、安全组与集群保持一致。

  5. 参数配置后,勾选“协议”并单击“立即购买”。ECS创建成功后会默认开机。

    具体请参见弹性云服务“用户指南 > 快速入门 > 创建ECS”章节。

步骤三:添加安全组

在ECS安全组中添加本地主机的IP地址。
  1. 获取本地主机IP,按键盘中“win+R”,弹出运行界面。
  2. 在输入框中输入“cmd”,单击“确定”,进入cmd运行窗口,
  3. 在命令窗口输入“ipconfig”,单击“回车”,查询本机IP。
  4. 购买弹性云服务器,登录ECS控制台。
  5. 进入“弹性云服务器 ”列表页面,单击“弹性云服务名称 > 基本信息 > 安全组名称 > 入方向规则”,进入入方向规则页面。
  6. 单击页面右上角的“添加规则”,弹出“添加入方向规则”页面。
  7. 源地址中填写步骤3中获取的本地IP地址。单击“确定”安全组添加完成。

步骤四:下载HBase客户端和客户端校验文件

  1. 登录表格存储服务控制台。
  2. 控制台左上角选择区域。
  3. 单击“帮助”,进入帮助页面。
  4. 单击帮助页面右侧“常用链接 > hbase客户端下载”(根据版本下载客户端),下载客户端安装包。
  5. 单击“客户端校验文件下载”,下载校验文件。

步骤五:安装客户端并校验客户端

  1. 使用SSH登录工具(如PuTTY)通过“弹性IP”远程登录到Linux弹性云服务器。

    具体登录操作步骤请参见《弹性云服务器用户指南》中的“ 登录Linux弹性云服务器 > SSH密码方式登录”。

  2. 步骤二中下载的客户端传输到Linux弹性云服务器。
  3. 登录后执行如下命令解压安装包:
    cd <客户端安装包存放路径>
    tar xzvf hbase-1.3.1-bin.tar.gz
    cd <客户端安装包存放路径>
    tar xzvf hbase-2.4.14-bin.tar.gz

    其中,<客户端安装包存放路径>请替换为实际的客户端存放路径。

  4. 解压“客户端校验文件”,与客户端解压在同一个目录下。
    1. 解压“客户端校验文件”。
      cd <客户端校验文件存放路径>
      tar xzvf Client_sha256.tar.gz
    2. 获取客户端校验码。
      sha256sum HBase_Client_2.4.14.tar.gz
    3. 查看客户端校验文件中的校验码,并与客户端校验码进行对比。如果对比结果一致,代表客户端未被篡改,如果对比结果不一致,则代表客户端被篡改。
      less HBase_Client_2.4.14.tar.gz.sha256
  5. 配置ZooKeeper地址到配置文件。

    在客户端解压目录下,打开“hbase/conf/hbase-site.xml”文件,配置如下参数:

    1. “hbase.zookeeper.quorum”:该参数值为在集群管理列表中查找的对应集群的“ZK链接地址”。

      登录表格存储服务管理控制台,在左侧导航树单击“集群管理”,然后在集群列表中找到所需要的集群,并获取相应的“ZK链接地址”,配置在“hbase/conf/hbase-site.xml”文件。

      图1 配置ZK地址
    2. 检查是否存在该配置项“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安全集群章节。

  6. 启动Shell访问集群。执行“bin/hbase shell”,启动Shell访问集群。

步骤六:运行HBase客户端命令,实现A业务

  1. 根据表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'
  2. 在用户信息表user_info中新增用户的学历、职称信息。

    以增加编号为12005000201的用户的学历、职称信息为例,其他用户类似。

    put 'user_info','12005000201','i:degree','master'
    put 'user_info','12005000201','i:pose','manager'
  3. 根据用户编号查询用户姓名和地址。

    以查询编号为12005000201的用户姓名和地址为例,其他用户类似。

    scan 'user_info',{STARTROW=>'12005000201',STOPROW=>'12005000201',COLUMNS=>['i:name','i:address']}
  4. 根据用户姓名进行查询。

    以查询A用户信息为例,其他用户类似。

    scan 'user_info',{FILTER=>"SingleColumnValueFilter('i','name',=,'binary:A')"}
  5. 删除用户信息表中该用户的数据。

    所有用户的数据都需要删除,以删除编号为12005000201的用户数据为例,其他用户类似。

    delete 'user_info','12005000201','i'
  6. 删除用户信息表。
    disable 'user_info';drop 'user_info'