从HBase Client迁移到Tablestore HBase Client

Tablestore HBase Client是基于HBase Client的封装,使用方法和HBase Client基本一致,但仍存在一些差别。本文介绍如何从HBase Client迁移到Tablestore HBase Client。

操作步骤

步骤一:引入Tablestore HBase Client依赖

Tablestore HBase Client 2.0.12版本的pom.xml配置如下:

 <dependencies>
    <dependency>
        <groupId>com.aliyun.openservices</groupId>
        <artifactId>tablestore-hbase-client</artifactId>
        <version>2.0.12</version>
    </dependency>
</dependencies>		

步骤二:修改配置文件

要从HBase Client迁移到Tablestore HBase Client,您需要在hbase-site.xml配置文件中修改HBase Connection类型以及添加表格存储配置项。

1. 修改HBase Connection类型

Connection需要配置为TablestoreConnection。

<property>
    <name>hbase.client.connection.impl</name>
    <value>com.alicloud.tablestore.hbase.TablestoreConnection</value>
</property>				

2. 添加表格存储配置项

表格存储为云服务,提供了严格的权限管理。要访问表格存储,您必须配置访问密钥、访问实例等基础必配项的信息。您也可以按需进行可选配置项的配置。

  • 基础必配项

    您必须完成访问密钥和访问实例相关配置项的配置才能成功访问表格存储。其中tablestore.client.endpoint表格存储的服务地址,tablestore.client.instancename表格存储实例名称。tablestore.client.accesskeyidtablestore.client.accesskeysecret分别为阿里云账号或者RAM用户的AccessKey IDAccessKey Secret。

    <property>
        <name>tablestore.client.endpoint</name>
        <value>https://exampleinstance.cn-hangzhou.ots.aliyuncs.com</value>
    </property>
    <property>
        <name>tablestore.client.instancename</name>
        <value>exampleinstance</value>
    </property>
    <property>
        <name>tablestore.client.accesskeyid</name>
        <value>*****************</value>
    </property>
    <property>
        <name>tablestore.client.accesskeysecret</name>
        <value>***********</value>
    </property>							
  • 可选配置项

    如需进行表名、最大连接数、超时时间等可选配置项的配置,请参考如下示例进行配置。

    <property>
        <name>hbase.client.tablestore.family</name>
        <value>f1</value>
    </property>
    <property>
        <name>hbase.client.tablestore.family.$tablename</name>
        <value>f2</value>
    </property>
    <property>
        <name>tablestore.client.max.connections</name>
        <value>300</value>
    </property>
    <property>
        <name>tablestore.client.socket.timeout</name>
        <value>15000</value>
    </property>
    <property>
        <name>tablestore.client.connection.timeout</name>
        <value>15000</value>
    </property>
    <property>
        <name>tablestore.client.operation.timeout</name>
        <value>2147483647</value>
    </property>
    <property>
        <name>tablestore.client.retries</name>
        <value>3</value>
    </property>						

    可选配置项说明请参见下表。

    配置项

    说明

    hbase.client.tablestore.family

    表格存储只支持单列族,使用HBase API时,需要有一项family的内容,因此通过配置来填充此项family的内容。

    其中hbase.client.tablestore.family为全局配置,hbase.client.tablestore.family.$tablename为单个表的配置。

    配置规则为对表名为T的表,先查找hbase.client.tablestore.family.T,如果不存在则查找hbase.client.tablestore.family,如果仍不存在则取默认值f。

    hbase.client.tablestore.family.$tablename

    tablestore.client.max.connections

    最大连接数,默认为300。

    tablestore.client.socket.timeout

    Socket超时时间,默认为15秒。

    tablestore.client.connection.timeout

    连接超时时间,默认为15秒。

    tablestore.client.operation.timeout

    API超时时间,默认为Integer.MAX_VALUE,表示永不超时。

    tablestore.client.retries

    请求失败时的重试次数,默认为3次。

相关文档

如需将HBase数据迁移到表格存储中,请参见数据集成服务通过DataXHBase数据同步到表格存储