更新时间:2024-10-30 GMT+08:00

连接GeminiDB HBase兼容版实例

本章节主要介绍通过内网IP和Java语言连接GeminiDB HBase实例的基本操作。

前提条件

  • 已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器快速入门》中“创建弹性云服务器”章节。
  • 弹性云服务器上已经安装JDK环境。
  • 下载HBase客户端

查看实例IP地址

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

    方法一:

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

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

    图1 查看IP地址

    在网络信息区域可以查看到GeminiDB HBase实例的端口,界面显示默认为8635,实际使用的默认端口为2181。

    图2 查看端口

    方法二:

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

    图3 查看IP和端口

通过内网连接实例

  1. 登录弹性云服务器

    详情请参见《弹性云服务器快速入门》中登录弹性云服务器的内容。

  2. HBase客户端安装包上传到弹性云服务器
  3. 使用如下命令,解压客户端压缩包。

    tar -xvf hbase-2.5.8-client-bin.tar.gz

  4. 修改客户端目录下conf/hbase-site.xml文件内容为下述配置样例,并且替换其中value字段的IP地址为您实例节点的IP,多个IP间以英文逗号分隔。实例节点的内网IP可通过查看实例IP地址获取。

    <configuration> 
      <property>
        <name>hbase.zookeeper.quorum</name>
        <value>127.0.0.1,127.0.0.2,127.0.0.3</value>
      </property>
    </configuration>

  5. 进入到解压后客户端的bin目录,执行以下命令连接实例。注意替换其中的YOUR_USERNAME与YOUR_PASSWORD为创建实例时设置的用户密码,用户名目前固定为rwuser。

    export HADOOP_PROXY_USER="YOUR_USERNAME"
    export HADOOP_USER_NAME="YOUR_PASSWORD"
    ./hbase shell

  6. 出现如下信息,说明连接成功。

    hbase:001:0>

通过Java连接实例

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

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

  2. 登录弹性云服务器,具体操作请参见《弹性云服务器快速入门》中“登录弹性云服务器”。
  3. 请添加以下Maven依赖到您的项目中。

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

  4. 编辑连接实例的代码。

    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");
    
            // 填写用户名和密码
            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("Value: " + Bytes.toString(value));
    
            } finally {
                // 关闭连接
                connection.close();
            }
        }
    }

  5. 运行示例代码,确认结果是否正常。