云数据库HBase标准版或自建HBase迁移至云数据库HBase增强版

本文介绍将云数据库HBase标准版或自建HBase迁移至云数据库HBase增强版的方法。

背景信息

云数据库HBase增强版是基于云原生多模数据库Lindorm内核研发的、完全兼容HBase的云上托管数据库,已经在阿里集团内部发展超10年,支撑服务了淘宝、支付宝、菜鸟、优酷、高德等业务中的大量核心应用,在成本、性能、稳定性、功能、安全、易用性等方面相比社区版HBase拥有诸多优势和企业级能力。

在使用上,用户可以通过HBase官方客户端及标准API访问云数据库HBase增强版,云数据库HBase增强版同时兼容HBase-1.x和HBase-2.x客户端访问,在整体功能及API上保证近100%的兼容性。云数据库HBase增强版提供最高7倍于HBase开源版本的性能和一半的存储成本,详情请参见产品优势

数据迁移

Lindorm Tunnel Service服务,简称LTS(原BDS),该服务是面向云原生多模数据库Lindorm(云数据库HBase增强版)业务场景特点深度定制的数据生态服务。支持简单易用的数据交换、处理、订阅等能力,满足用户的数据迁移、实时订阅、数湖转存、数仓回流、单元化多活、备份恢复等需求,实现面向Lindorm的一站式数据生态服务。详情请参见:LTS服务介绍

通过LTS可以实现从云数据库HBase标准版或HBase社区版向云数据库HBase增强版的不停机迁移。以下是实现不停机迁移的具体操作。

准备工作

  1. 创建待迁移的云数据库HBase标准版集群(也可以是社区版HBase),具体操作请参见购买集群

  2. 创建ECS服务,您需要确保云数据库HBase标准版集群和ECS实例满足以下条件,以保证网络的连通性。ECS实例信息的查看方法请参见查看实例信息

    • 所在地域相同,所在可用区相同。

    • 使用相同的专有网络ID。

  3. 登录ECS,创建用户压测的目录,下载压测工具AHBench。压测工具请参见:AHBench

  4. 编辑AHBench/conf/hbase-site.xml文件,配置需要测试的云数据库HBase标准版集群连接地址。配置内容如下:

    <configuration>
      <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hb-bp1u0639js2h7****-master2-001.hbase.rds.aliyuncs.com:2181,hb-bp1u0639js2h7****-master1-001.hbase.rds.aliyuncs.com:2181,hb-bp1u0639js2h7****-master3-001.hbase.rds.aliyuncs.com:2181</value>
      </property>
    </configuration>
    说明

    configuration.property.value:表示云数据库HBase标准版集群连接地址,通过云数据库HBase控制台获取,左侧导航栏选择数据库连接连接信息区域查看。

  5. 编辑AHBench/conf/ahbench-env.properties文件,打开HBASE_VERSION参数。需要保证Java可以调用。如下图所示:java&env

  6. 将ECS的IP地址添加至云数据库HBase标准版集群的白名单,具体操作请参见设置白名单

  7. 登录HBase Master页面,通过云数据库HBase控制台登录,左侧导航栏选择数据库连接,在UI访问区域中单击HBase公网访问

  8. 启动测试,创建待迁移测试表及数据。表情况详见HBase集群Master页面。HMaster

创建目标集群

创建云数据库HBase增强版,具体操作请参见购买集群

创建LTS(原BDS)集群

创建LTS集群,具体操作请参见开通LTS

关联源集群和目标集群

  1. 添加云数据库HBase标准版数据源,具体请参见添加HBase数据源

  2. 添加云数据库HBase增强版数据源,具体请参见添加HBase增强版

  3. 完成集群关联后的LTS数据源管理页面如下图所示:数据源列表

  4. 登录LTS操作页面,登录方法请参见登录LTS。完成集群关联后的LTS数据源管理页面如下图所示:LTS UI DSList

完成数据迁移

数据源关联完成后,下一步就可以创建迁移任务进行数据迁移了。

  1. 登录LTS操作页面,左侧导航栏选择一键迁移,单击创建任务,打开Lindorm/HBase不停机迁移页面。根据以下参数说明配置参数。

    • 任务名:定义迁移任务名称。

    • 源集群:选择已经关联的源集群。

    • 目标集群:选择已经关联的源集群。

    • 操作:勾选迁移操作,对于集群的整体迁移可以同时勾选表结构迁移、实时数据复制、历史数据迁移。

    • 同步/迁移的表:可以支持以下迁移方式。

      • 整个集群迁移: *

      • 某个Namespace下所有表:namespace:*

      • 迁移部分表:namespace1:table1 namespace2:table2 (不同表通过换行进行分割)

      • 迁移表的部分列:tableA {"cols": ["f:col1", "f:col2"]}

      • 迁移后的namespace和表的名称: namespaceA:tableA/namespaceB:tableB

        说明

        如果没有配置namespace则默认为default。

  2. 单击创建,可以在该页面看到提交后的任务运行情况。job list

  3. 数据验证。数据迁移完成后可以创建数据抽样验证任务,确认源、目标集群的数据一致性。单击数据验证按钮,创建新任务,输入:源、目标集群、抽样比例、表名等。

数据验证数据验证通过后,即代表集群迁移(包括:历史数据和实时增量同步)完成,并且实时同步任务要始终保持运行中状态,直到流量切换到新集群。

  • 为了保证集群迁移可回滚,需要配置一个反向的实时同步任务,即把源、目标交换的实时同步任务。

  • 其他注意事项:

    • 对于社区版HBase需要调整合适的HLog保留周期,以保证数据同步链路不会因为HLog被删除而中断。

    • 对于自建HBase集群如果开通了kerberos的,请提交工单协助完成迁移。

    • 如果有通过Bulkload方式做数据导入的,因为该方式下不产生HLog,意味着数据无法完成集群间的同步,请在新老集群同时配置数据导入任务,直至确认切流完成,老集群下线。

客户端配置

对于云数据库HBase标准版和云数据库HBase增强版都建议使用阿里云云数据库HBase提供的客户端。详见:HBaseJava SDK下载

对于仍然希望使用社区版HBase客户端的客户,可以有两种选择:历史版本(Maven方式或者历史版本(Jar包替换)

集群切换

正式切换流量简要步骤:

  1. 应用端预发布环境可以正常读写新的云数据库HBase增强版集群。

  2. 写入新集群的数据可以通过反向同步链路将数据复制到老集群。

  3. 新老集群的复制链路正常,实时同步延迟较低(正常应该小于1秒)。

  4. 选择业务低峰期进行流量切换。

阿里云首页 云数据库 Hbase 相关技术圈