连接GeminiDB HBase兼容版实例
本章节主要介绍通过内网IP和Java语言连接GeminiDB HBase实例的基本操作。
前提条件
- 已成功创建GeminiDB HBase实例,且实例状态正常。创建GeminiDB HBase实例的方法请参见购买GeminiDB HBase兼容版实例。
查看实例IP地址
- 登录管理控制台。
- 在“实例管理”页面,单击目标实例名称,进入基本信息页面。
方法一:
在“基本信息”页面下方节点信息列表中,即可查看到GeminiDB HBase实例下各个节点的内网IP地址。
GeminiDB HBase实例目前不支持绑定公网IP。
图1 查看IP地址
在网络信息区域可以查看到GeminiDB HBase实例的端口,界面显示默认为8635,实际使用的默认端口为2181。
图2 查看端口
方法二:
您也可以单击实例“基本信息”左侧导航中的“连接管理”,即可查看到实例的内网IP地址和端口。
图3 查看IP和端口
通过内网连接实例
- 登录弹性云服务器。
详情请参见《弹性云服务器快速入门》中登录弹性云服务器的内容。
- 将HBase客户端安装包上传到弹性云服务器。
- 使用如下命令,解压客户端安装包。
tar -xvf hbase-2.5.8-client-bin.tar.gz
- 使用如下命令,修改conf/hbase-site.xml文件中的“hbase.zookeeper.quorum”值为实例的内网IP。
vim conf/hbase-site.xml
实例的内网IP通过查看实例IP地址获取。
- 使用如下命令,进入到bin目录,执行./hbase shell命令,即可连接实例。
cd bin ./hbase shell
- 出现如下信息,说明连接成功。
hbase:001:0>
通过Java连接实例
- 获取GeminiDB HBase实例的开放的内网IP地址、端口。
内网IP地址和端口的获取方法请参见查看实例IP地址。
- 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“登录弹性云服务器”。
- 请添加以下Maven依赖到您的项目中。
<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>2.5.3</version> </dependency>
- 编辑连接GeminiDB HBase实例的代码。
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", "your_hbase_instance_port"); // 建立与Hbase实例的连接 Connection connection = ConnectionFactory.createConnection(config); 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("Value: " + Bytes.toString(value)); } finally { // 关闭连接 connection.close(); } } }
- 运行示例代码,确认结果是否正常。