文档首页/ 云数据库 GeminiDB/ GeminiDB HBase接口/ 快速入门/ 购买并连接GeminiDB HBase接口实例
更新时间:2026-05-20 GMT+08:00
分享

购买并连接GeminiDB HBase接口实例

本章节主要介绍如何在云数据库 GeminiDB控制台购买并连接GeminiDB HBase接口实例的基本操作。

如果需要其他方式连接实例请参考其他连接实例方式

准备工作

  • 注册账号并实名认证。

    在购买GeminiDB HBase之前,请先注册华为账号并开通华为云实名认证

    如果您已开通华为云并进行实名认证,请忽略此步骤。

  • 购买实例前需要确保账户有足够金额,请参见账户充值
  • 如果需要对华为云上的资源进行精细管理,请使用统一身份认证服务(Identity and Access Management,简称IAM)创建IAM用户及用户组,并授权,以使得IAM用户获得具体的操作权限,更多操作,请参见创建用户并授权使用GeminiDB HBase
  • 已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器》中“创建弹性云服务器”章节。
  • 弹性云服务器上已经安装JDK环境。
  • 下载HBase客户端。进入网站后,选择2.6.X最新版本的目录,然后下载hbase-2.6.X-client-bin.tar.gz。例如,当前最新版本为2.6.1,选择2.6.1的目录,然后下载hbase-2.6.1-client-bin.tar.gz。如果使用1.X版本的客户端,将会出现兼容性问题,不建议使用。

步骤1:购买实例

具体详细的购买操作指导请参见购买实例

  1. 登录云数据库GeminiDB控制台
  2. “实例管理”页面,单击“购买数据库实例”
  3. “服务选型”页面,选择计费模式,填写并选择实例相关信息后,单击“立即购买”
    图1 计费模式和基本信息(经典)
    图2 计费模式和基本信息(云原生)
    表1 计费方式

    参数

    示例

    描述

    计费模式

    按需计费

    实例的计费模式。

    • 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于需求量长期稳定的成熟业务。
    • 按需计费:一种后付费模式,即先使用再付费,按照云数据库GeminiDB实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。
    表2 基本信息

    参数

    示例

    描述

    区域

    华北-北京四

    租户所在的区域。

    说明:

    请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。不同区域内的产品内网不互通,且购买后不能更换,请谨慎选择。

    实例名称

    自定义

    设置实例名称时,需要满足如下规则。

    • 实例名称允许与已有名称相同。
    • 实例名称长度在4个到64个字节之间,必须以字母或中文字开头,区分大小写,可以包含字母、数字、中划线、下划线或中文(一个中文字符占用3个字节),不能包含其他特殊字符。

    兼容接口

    HBase

    云数据库 GeminiDB目前兼容Redis、DynamoDB、Cassandra、HBase、InfluxDB和MongoDB主流NoSQL接口,您当前选择的是HBase接口,其他接口的选择具体参见如何选择接口

    部署模式

    经典

    • 经典:GeminiDB经典的存算分离架构。
    • 云原生:新一代存算分离架构,更灵活,支持更多的可用区。
    说明:
    • 经典和云原生只是部署模式有差异,对用户使用无差异;云原生支持的可用区更多,对于同时支持经典和云原生的,用户选择任意部署模式即可。

    实例类型

    集群

    集群是基于多个节点(至少是三节点)组成。集群的主要特点是横向扩展能力强,能满足不断增长的数据量需求,因此当您对可用性要求较高、数据量较大、未来扩展性要求较高的情况下,可以使用集群架构。

    可用区

    可用区1,可用区2,可用区3

    指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。

    目前支持将实例部署在单可用区或3可用区。

    • 若实例只需要部署在单可用区,请选择1个可用区。
    • 若实例需要实现跨可用区容灾部署时,请选择3可用区,此时实例下的节点Hash均衡部署在3个可用区内。
    图3 规格与存储
    表3 规格与存储

    参数

    示例

    描述

    性能规格

    2U8GB

    CPU规格越高,性能越好。请根据实际业务场景,选取符合业务类型的性能规格。

    节点数量

    3

    节点数量请根据实际需要进行选取。

    如果超过节点数上限,您可以在管理控制台右上角,选择“工单 > 新建工单”联系客服进行咨询。

    创建成功后可以添加节点,请参见手动扩容实例节点

    存储空间

    500GB

    存储空间的取值范围(最大值和最小值)与所选的实例规格有关

    调整存储空间容量时,选择容量大小必须为整数,且至少需选择1GB的扩容量。

    自动扩容

    是否开启自动扩容。

    • 仅经典部署模式实例支持。
    • 如果您在创建实例时未开启存储空间自动扩容,待实例创建成功后也可以单独开启。具体操作请参见自动扩容实例磁盘
    图4 网络配置
    表4 网络配置

    参数

    示例

    描述

    虚拟私有云

    default_vpc

    实例所在的虚拟专用网络,可以对不同业务进行网络隔离,以提高网络安全性。

    系统会分配一个默认的虚拟私有云(default_vpc),您也可以使用已有、新建或共享的VPC。

    实例创建完成后不支持切换虚拟私有云,请谨慎选择所属虚拟私有云。

    • 使用已有VPC,请在下拉列表中选择当前账号下已有的VPC。
    • 使用新的VPC,需要先创建新的VPC,然后在下拉列表中选择该VPC。

      关于如何创建VPC,请参见《虚拟私有云用户指南》中的“创建虚拟私有云基本信息及子网”。

    • 使用共享VPC,请在下拉列表选择其他账号共享给当前账号的VPC。

      共享VPC是基于资源访问管理(Resource Access Manager,简称RAM)服务的机制,VPC的所有者可以将VPC内的子网共享给其他账号使用,以实现网络资源的共享和统一管理,提升资源管控效率、降低运维成本。

      有关VPC子网共享的更多信息,请参见《虚拟私有云用户指南》的“共享VPC”相关内容。

    说明:
    • 如需与ECS进行内网通信,实例与需要通信的ECS需要处于同一个虚拟私有云下,或者不同虚拟私有云之间配置对等连接

    子网

    default_subnet

    通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全。

    说明:

    目前不支持选择IPV6网段的子网,建议您在使用时创建并选择IPV4网段的子网。

    内网安全组

    default

    安全组限制安全访问规则,加强与其他服务间的安全访问。请确保所选取的安全组允许客户端访问数据库实例。

    如果没有可用的安全组,系统自动为您分配资源。

    图5 数据库配置

    表5 数据库配置

    参数

    示例

    描述

    管理员密码

    根据密码策略配置

    用户设置的密码。

    • 长度为8~32个字符。
    • 必须是大写字母、小写字母、数字、特殊字符的组合,其中可输入特殊字符~!#%^*-_=+?。
    • 注意:密码中请勿使用@和/
    • 系统会进行弱密码校验,安全起见,请输入高强度密码。

    请妥善管理您的密码,因为系统将无法获取您的密码信息。

    企业项目

    default

    该参数针对企业用户使用。

    企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理,默认项目为default。

    请在下拉框中选择所在的企业项目。更多关于企业项目的信息,请参见《企业管理用户指南》

    参数模板

    Default-Cassandra-3.11

    数据库参数模板就像是数据库引擎配置值的容器,参数模板中的参数可应用于一个或多个相同类型的数据库实例。实例创建成功后,参数模板可进行修改。

    用户可以在实例创建完成之后根据业务需要进行调整。

    其他参数选择默认配置。

  4. 在“订单详情确认”页面,核对实例信息。如果需要修改,单击“上一步”,修改实例信息。
  5. 核对无误后,勾选协议,单击“提交”,开始创建实例。
  6. 单击“返回实例列表”按钮,返回实例列表页。
  7. “实例管理”页面,您可以查看并管理实例。
    • 实例创建过程中,运行状态显示为“创建中”,此过程约5~9分钟。
    • 实例创建完成后,运行状态显示为“正常”

步骤2:查看实例IP地址

  1. 登录云数据库GeminiDB控制台
  2. “实例管理”页面,单击目标实例名称,进入基本信息页面。

    方法一:

    “基本信息”页面下方节点信息列表中,即可查看到GeminiDB HBase接口实例下各个节点的内网IP地址。

    GeminiDB HBase接口实例目前不支持绑定公网IP。

    图6 查看IP地址

    在网络信息区域可以查看到GeminiDB HBase接口实例的端口,实际客户端应该连接的默认端口为2181。

    图7 查看端口

    方法二:

    您也可以单击实例“基本信息”左侧导航中的“连接管理”,即可查看到实例的内网IP地址和端口。

    图8 查看IP和端口

步骤3:通过Java连接实例

  1. 获取GeminiDB HBase接口实例的开放的内网IP地址、端口。

    内网IP地址和端口的获取方法请参见查看实例IP地址

  2. 登录弹性云服务器,具体操作请参见《弹性云服务器》中“登录弹性云服务器”。
  3. 请添加以下Maven依赖到您项目中的pom.xml。如果使用1.X版本的客户端,将会出现兼容性问题导致读写失败,不建议使用。 建议使用hbase-client 2.2.3及以上的依赖版本,其中SSL功能仅在hbase-client 2.6.0以上版本支持。

    <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-client</artifactId>
        <version>2.6.1</version>
    </dependency>

  4. 编辑连接GeminiDB HBase接口实例的代码,将代码中的"your_hbase_instance_quorum" 替换为集群IP地址,"your_user_name"替换为您创建集群时设置的用户名(默认为rwuser),替换"your_password"为您创建集群时设置的密码。同时运行该代码需要您在实例中已经有创建好的HBase表,并且替换相应表名到代码中的 "your_table_name"处。

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.*;
    import org.apache.hadoop.hbase.util.Bytes;
    
    import java.io.IOException;
    
    public class HBaseExample {
        public static void main(String[] args) throws IOException {
            // 创建配置对象并设置Hbase连接参数
            Configuration config = HBaseConfiguration.create();
            config.set("hbase.zookeeper.quorum", "your_hbase_instance_quorum");
            config.set("hbase.zookeeper.property.clientPort", "2181");
            config.set("hbase.security.authentication", "simple");
    
            // 填写用户名和密码
            UserGroupInformation ugi = UserGroupInformation.createProxyUser("your_user_name",   UserGroupInformation.createRemoteUser("your_password"));
    
            // 建立与Hbase实例的连接
            Connection connection = ConnectionFactory.createConnection(config, User.create(ugi));
    
            try {
                // 获取表对象
                TableName tableName = TableName.valueOf("your_table_name");
                Table table = connection.getTable(tableName);
    
                // 插入数据
                Put put = new Put(Bytes.toBytes("row_key"));
                put.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("col"), Bytes.toBytes("value"));
                table.put(put);
    
                // 获取单行数据
                Get get = new Get(Bytes.toBytes("row_key"));
                Result result = table.get(get);
                byte[] value = result.getValue(Bytes.toBytes("cf"), Bytes.toBytes("col"));
                System.out.println("Success: " + Bytes.toString(value));
    
            } finally {
                // 关闭连接
                connection.close();
            }
        }
    }

  5. 运行示例代码,确认结果是否正常。样例输出为 "Success: value"

相关文档