全部产品
表格存储

从 HBase 迁移到表格存储

更新时间:2017-07-07 15:04:16   分享:   

TableStore HBase Client 是基于 HBase Client 的封装,使用方法和 HBase Client 基本一致,但是也有一些事项需要注意。

依赖

TableStore HBase Client 1.2.0 版本中依赖了 HBase Client 1.2.0 版本和 TableStore JAVA SDK 4.2.1 版本。pom.xml 配置如下:

  1. <dependencies>
  2. <dependency>
  3. <groupId>com.aliyun.openservices</groupId>
  4. <artifactId>tablestore-hbase-client</artifactId>
  5. <version>1.2.0</version>
  6. </dependency>
  7. </dependencies>

如果需要使用其他版本的 HBase Client 或 Table Store JAVA SDK,可以使用 exclusion 标签。下面示例中使用 HBase Client 1.2.1 版本和 Table Store JAVA SDK 4.2.0 版本。

  1. <dependencies>
  2. <dependency>
  3. <groupId>com.aliyun.openservices</groupId>
  4. <artifactId>tablestore-hbase-client</artifactId>
  5. <version>1.2.0</version>
  6. <exclusions>
  7. <exclusion>
  8. <groupId>com.aliyun.openservices</groupId>
  9. <artifactId>tablestore</artifactId>
  10. </exclusion>
  11. <exclusion>
  12. <groupId>org.apache.hbase</groupId>
  13. <artifactId>hbase-client</artifactId>
  14. </exclusion>
  15. </exclusions>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.apache.hbase</groupId>
  19. <artifactId>hbase-client</artifactId>
  20. <version>1.2.1</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>com.aliyun.openservices</groupId>
  24. <artifactId>tablestore</artifactId>
  25. <classifier>jar-with-dependencies</classifier>
  26. <version>4.2.0</version>
  27. </dependency>
  28. </dependencies>

HBase Client 1.2.x 和 其他版本(如 1.1.x)存在接口变化,而 TableStore HBase Client 1.2.x 版本只能兼容 HBase Client 1.2.x。

如果需要使用 HBase Client 1.1.x 版本,请使用 TableStore HBase Client 1.1.x 版本。

如果需要使用 HBase Client 0.x.x 版本,请参考迁移较早版本的 HBase

配置文件

从 HBase Client 迁移到 TableStore HBase Client,需要在配置文件中修改以下两点。

HBase Connection类型

Connection 需要配置为 TableStoreConnection。

  1. <property>
  2. <name>hbase.client.connection.impl</name>
  3. <value>com.alicloud.tablestore.hbase.TablestoreConnection</value>
  4. </property>

表格存储的配置项

表格存储是云服务,提供了严格的权限管理。要访问表格存储,需要配置秘钥等信息。

  • 必须配置以下四个配置项才能成功访问表格存储:

    1. <property>
    2. <name>tablestore.client.endpoint</name>
    3. <value></value>
    4. </property>
    5. <property>
    6. <name>tablestore.client.instancename</name>
    7. <value></value>
    8. </property>
    9. <property>
    10. <name>tablestore.client.accesskeyid</name>
    11. <value></value>
    12. </property>
    13. <property>
    14. <name>tablestore.client.accesskeysecret</name>
    15. <value></value>
    16. </property>
  • 下面为可选配置项:

    1. <property>
    2. <name>hbase.client.tablestore.family</name>
    3. <value>f1</value>
    4. </property>
    5. <property>
    6. <name>hbase.client.tablestore.family.$tablename</name>
    7. <value>f2</value>
    8. </property>
    9. <property>
    10. <name>tablestore.client.max.connections</name>
    11. <value>300</value>
    12. </property>
    13. <property>
    14. <name>tablestore.client.socket.timeout</name>
    15. <value>15000</value>
    16. </property>
    17. <property>
    18. <name>tablestore.client.connection.timeout</name>
    19. <value>15000</value>
    20. </property>
    21. <property>
    22. <name>tablestore.client.operation.timeout</name>
    23. <value>2147483647</value>
    24. </property>
    25. <property>
    26. <name>tablestore.client.retries</name>
    27. <value>3</value>
    28. </property>
    • hbase.client.tablestore.family 与 hbase.client.tablestore.family.$tablename

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

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

      • 规则为:对表名为 T 的表,先找hbase.client.tablestore.family.T,如果不存在则找hbase.client.tablestore.family,如果依然不存在则取默认值 f

    • 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 次。
本文导读目录
本文导读目录
以上内容是否对您有帮助?