购买并连接GeminiDB HBase接口实例
本章节主要介绍如何在云数据库 GeminiDB控制台购买并连接GeminiDB HBase接口实例的基本操作。
如果需要其他方式连接实例请参考其他连接实例方式。
前提条件
- 已成功创建GeminiDB HBase接口实例,且实例状态正常。创建GeminiDB HBase接口实例的方法请参见快速了解GeminiDB HBase接口。
步骤1:查看实例IP地址
- 登录管理控制台。
- 在“实例管理”页面,单击目标实例名称,进入基本信息页面。
方法一:
在“基本信息”页面下方节点信息列表中,即可查看到GeminiDB HBase接口实例下各个节点的内网IP地址。
GeminiDB HBase接口实例目前不支持绑定公网IP。
图1 查看IP地址在网络信息区域可以查看到GeminiDB HBase接口实例的端口,实际客户端应该连接的默认端口为2181。
图2 查看端口方法二:
您也可以单击实例“基本信息”左侧导航中的“连接管理”,即可查看到实例的内网IP地址和端口。
图3 查看IP和端口
步骤2:购买实例
具体详细的购买操作指导请参见购买实例。
- 登录管理控制台。
- 在服务列表中选择“数据库 > 云数据库 GeminiDB”。
- 在“实例管理”页面,单击“购买数据库实例”。
- 在“服务选型”页面,选择计费模式,填写并选择实例相关信息后,单击“立即购买”
图4 计费模式和基本信息(经典)图5 计费模式和基本信息(云原生)
表1 计费方式 参数
描述
计费模式
选择“包年包月”或“按需计费”。
- 包年包月
- 用户选购完服务配置后,可以根据需要设置购买时长,系统会一次性按照购买价格对账户余额进行扣费。
- 创建成功后,如果包年/包月实例到期后不再长期使用资源,可将“包年/包月”实例转为“按需计费”,到期后将转为按需计费实例。具体请参见包年/包月转按需。
说明:
- “包年/包月”方式购买的实例不能直接删除,仅支持资源退订操作,如何退订资源请参见如何退订包年/包月实例。
- 云原生部署模式实例的“包年/包月”模式处于公测中,您可以在管理控制台右上角,选择“工单 > 新建工单”,联系客服申请开通。
- 按需付费
- 用户选购完服务配置后,无需设置购买时长,系统会根据消费时长对账户余额进行扣费。
- 创建成功后,如果需要长期使用资源,可将“按需计费”实例转为“包年/包月”,继续使用这些资源的同时,享受包年/包月的低资费。具体请参见按需转包年/包月。
表2 基本信息 参数
描述
区域
租户所在的区域。
说明:请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。不同区域内的产品内网不互通,且购买后不能更换,请谨慎选择。
实例名称
设置实例名称时,需要满足如下规则。
- 实例名称允许和已有名称重复。
- 实例名称长度在4个到64个字节之间,必须以字母或中文字开头,区分大小写,可以包含字母、数字、中划线、下划线或中文(一个中文字符占用3个字节),不能包含其他特殊字符。
兼容接口
HBase
云数据库 GeminiDB目前兼容Redis、DynamoDB、Cassandra、HBase、InfluxDB和MongoDB主流NoSQL接口,您当前选择的是HBase接口,其他接口的选择具体参见如何选择接口。
部署模式
- 经典:GeminiDB经典的存算分离架构。
- 云原生:新一代存算分离架构,更灵活,支持更多的可用区。
说明:- 经典和云原生只是部署模式有差异,对用户使用无差异;云原生支持的可用区更多,对于同时支持经典和云原生的,用户选择任意部署模式即可。
- 云原生部署模式目前处于公测中,如需使用,您可以在管理控制台右上角,选择“工单 > 新建工单”,联系客服开通。
实例类型
集群
集群是基于多个节点(至少是三节点)组成。集群的主要特点是横向扩展能力强,能满足不断增长的数据量需求,因此当您对可用性要求较高、数据量较大、未来扩展性要求较高的情况下,可以使用集群架构。
可用区
指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。
图6 规格与存储表3 规格与存储 参数
描述
性能规格
CPU规格越高,性能越好。请根据实际业务场景,选取符合业务类型的性能规格。
节点数量
节点数量可选择范围为3~80,请根据实际需要进行选取。
存储空间
存储空间的取值范围(最大值和最小值)与所选的实例规格有关
调整存储空间容量时,选择容量大小必须为整数,且至少需选择1GB的扩容量。
磁盘加密
您可以根据业务需要选择是否进行磁盘加密。
- 不加密:未开启加密功能。
- 加密:当启用加密功能,用户创建数据库实例成功后,磁盘数据会在服务端加密成密文后存储。用户下载加密对象时,存储的密文会先在服务端解密为明文,再提供给用户,用于提高数据安全性,但对数据库读写性能有少量影响。
- 密钥名称:选择或创建密钥。
- 如需使用共享密钥,需要先确保已经创建委托,然后在下拉列表选择其他账号共享给当前账号的密钥。
共享密钥基于资源访问管理(Resource Access Manager,简称RAM)服务的机制,密钥的所有者可以将密钥共享给一个或者多个账号使用。创建共享密钥的操作,请参见创建共享。
- 手动输入密钥ID。该密钥必须位于当前区域。
说明:- 该功能目前处于内侧阶段,如需使用,您可以在管理控制台右上角,选择“工单 > 新建工单”,联系客服开通。
- 实例创建成功后,不可修改磁盘加密状态,且无法更改密钥。
- 密钥在使用过程中不能被禁用、删除或冻结,否则会导致数据库不可用。
- 创建密钥请参见《数据加密服务用户指南》的“创建密钥”章节内容。
图7 网络配置表4 网络配置 参数
描述
虚拟私有云
实例所在的虚拟专用网络,可以对不同业务进行网络隔离。您可根据需要创建或选择所需的虚拟私有云。
如果没有可用的VPC,系统自动为您分配资源。
如何创建VPC,请参见《虚拟私有云用户指南》中的“创建虚拟私有云基本信息及默认子网”。
您还可以通过共享VPC功能,使用其他账号共享的VPC和子网。
共享VPC是基于资源访问管理(Resource Access Manager,简称RAM)服务的机制,VPC的所有者可以将VPC内的子网共享给其他账号使用,以实现网络资源的共享和统一管理,提升资源管控效率、降低运维成本。
有关VPC子网共享的更多信息,请参见《虚拟私有云用户指南》的“共享VPC”相关内容。
说明:- 目前实例创建完成后不支持切换虚拟私有云VPC,请谨慎选择所属虚拟私有云。
- 如需与ECS进行内网通信,实例与需要通信的ECS需要处于同一个虚拟私有云下,或者不同虚拟私有云之间配置对等连接。
子网
通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全。
说明:目前不支持选择IPV6网段的子网,建议您在使用时创建并选择IPV4网段的子网。
内网安全组
安全组限制安全访问规则,加强与其他服务间的安全访问。请确保所选取的安全组允许客户端访问数据库实例。
如果没有可用的安全组,系统自动为您分配资源。
图8 数据库配置表5 数据库配置 参数
描述
管理员账户名
管理员账户名默认为rwuser。
管理员密码
用户设置的密码。
- 长度为8~32个字符。
- 必须是大写字母、小写字母、数字、特殊字符的组合,其中可输入特殊字符~!#%^*-_=+?。
- 注意:密码中请勿使用@和/
- 系统会进行弱密码校验,安全起见,请输入高强度密码。
请妥善管理您的密码,因为系统将无法获取您的密码信息。
确认密码
必须和管理员密码一致。
企业项目
该参数针对企业用户使用。
企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理,默认项目为default。
请在下拉框中选择所在的企业项目。更多关于企业项目的信息,请参见《企业管理用户指南》。
参数模板
数据库参数模板就像是数据库引擎配置值的容器,参数模板中的参数可应用于一个或多个相同类型的数据库实例。实例创建成功后,参数模板可进行修改。
用户可以在实例创建完成之后根据业务需要进行调整。
其他参数选择默认配置。
- 包年包月
- 在“订单详情确认”页面,核对实例信息。如果需要修改,单击“上一步”,修改实例信息。
- 核对无误后,勾选协议,单击“提交”,开始创建实例。
- 单击“返回实例列表”按钮,返回实例列表页。
- 在“实例管理”页面,您可以查看并管理实例。
- 实例创建过程中,运行状态显示为“创建中”,此过程约5~9分钟。
- 实例创建完成后,运行状态显示为“正常”。
步骤3:通过Java连接实例
- 获取GeminiDB HBase接口实例的开放的内网IP地址、端口。
内网IP地址和端口的获取方法请参见查看实例IP地址。
- 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“登录弹性云服务器”。
- 请添加以下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>
- 编辑连接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"); // 填写用户名和密码 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(); } } }
- 运行示例代码,确认结果是否正常。样例输出为 "Success: value"