通过元数据文件迁移上云

元数据迁移是指将自建Kafka集群的元数据迁移到云消息队列 Kafka 版实例。您可以将自建Kafka集群元数据导出,然后导入云消息队列 Kafka 版实例,云消息队列 Kafka 版会根据成功导入的元数据在目标云消息队列 Kafka 版实例中创建对应的Topic和Group,实现自建Kafka集群元数据迁移上云。

前提条件

  • 已购买和部署云消息队列Kafka版实例

    当自建Kafka集群迁移上云时,你需要评估待迁移自建Kafka集群的信息,如集群流量情况、磁盘容量和类型、分区数量等,以便您选购合适的实例规格,云消息队列 Kafka 版提供规格评估功能,详情请参见评估规格

  • 已下载JDK 8及以上版本

  • 已安装Tsar

    为了更准确的获取执行机器的配置,推荐您提前安装Tsar软件。您也可以在运行迁移工具时通过指定--installTsar参数自动安装Tsar软件,但自动安装比较耗时,也有可能因为环境差异, 导致安装失败。

说明

本文中所用的迁移工具暂不支持Serverless实例。

背景信息

Kafka集群元数据是指Kafka集群的Topic和Group配置信息。Kafka集群元数据存储于ZooKeeper上,Kafka集群各个节点从ZooKeeper中获取最新的元数据。因此,集群的各个节点的元数据被导出时都是最新且相同的。Kafka集群元数据可以被导出成一份JSON文件,然后被导入另一个Kafka集群,实现自建Kafka集群元数据备份。

步骤一:导出元数据

使用元数据导出工具导出自建Kafka集群的元数据文件。

  1. 访问kafka-migration-assessment.jar下载元数据导出工具。

  2. 将下载好的迁移工具上传至自建Kafka集群。

  3. 在工具所在目录运行以下命令,赋予JAR包可执行权限。

    chmod 777 kafka-migration-assessment.jar
  4. 运行以下命令,导出元数据。

    java -jar kafka-migration-assessment.jar MigrationFromZk  \ 
    --sourceZkConnect <host:port>  \ 
    --sourceBootstrapServers <host:port>  \ 
    --targetDirectory ../xxx/  \ 
    --fileName metadata.json  \ 
    --commit

    参数

    说明

    示例

    sourceZkConnect

    自建Kafka集群的ZooKeeper IP地址和端口号。如果不指定该参数,则自动获取。

    192.168.XX.XX:2181

    sourceBootstrapServers

    自建Kafka集群的IP地址和端口号。如果不指定,则自动获取。

    192.168.XX.XX:9092

    targetDirectory

    导出元数据文件的存放目录。如果不指定该参数,则默认为当前目录。

    ../home/

    fileName

    导出元数据的文件名。如果不指定该参数,则文件名称默认为:kafka-metadata-export.json。

    metadata.json

    commit

    提交运行。

    commit

    installTsar

    是否自动安装Tsar。默认不自动安装Tsar。

    安装Tsar可以更加准确的获取当前机器规格、近期存储情况、流量、Kafka集群配置信息,但自动安装比较耗时,也有可能因为环境差异,导致安装失败。

    evaluate

    是否获取当前机器规格、近期存储情况、流量、Kafka集群配置信息,在迁移时根据获取的信息进行评估,推荐您购买规格更合适的云消息队列 Kafka 版实例。

    默认为true,即默认获取以进行规格评估,如果不需要评估,则需设置为false。

    文件存放目录下生成JSON文件,导出元数据成功。

    在配置的文件存放目录下可以看到导出的元数据文件,下载保存至本地。

步骤二:创建元数据导入任务

创建任务

  1. 登录云消息队列 Kafka 版控制台

  2. 概览页面的资源分布区域,选择地域。

  3. 在左侧导航栏,单击迁移

  4. 迁移页面,单击元数据导入页签,然后单击创建任务

  5. 创建导入元数据任务面板,编辑以下参数,单击创建

    1. 创建任务页签,设置任务名称目标实例,上传步骤一:导出元数据中获取的元数据文件。

    2. 编辑 Topic页签,您可以对即将迁移上云的Topic和Group执行以下操作:

      • 新增Topic:单击新增Topic,填写Topic的名称描述分区数消息类型

      • 编辑Topic:单击右侧操作列的编辑,修改Topic的描述分区数消息类型日志清理策略

      • 删除Topic:单击右侧操作列的删除,在提示对话框中单击确认

    3. 编辑 Group页签,您可以执行以下操作:

      • 新增Group:单击新增Group,填写Group ID描述

      • 编辑Group:单击右侧操作列的编辑,修改Group的描述

      • 删除Group:单击右侧操作列的删除,在提示对话框中单击确认

查看迁移进度

创建完成后,在迁移页面的元数据导入页签可查看目标任务的Topic 迁移进度Group 迁移进度,单击右侧操作列的详情查看详细信息。image

元数据迁移大概持续30分钟,待迁移完成后,即可开始使用迁移上云的Topic和Group。

步骤三:验证迁移结果

  1. 实例列表页面,单击目标实例名称。

  2. 查看资源列表。

    • 在左侧导航栏,单击Topic 管理,在Topic 管理页面的Topic列表中查看已创建的Topic。

    • 在左侧导航栏,单击Group 管理,在Group 管理页面的Group列表中查看已创建的Group。

步骤四:删除迁移任务

迁移页面的元数据导入页签,找到待删除的目标任务,在其右侧操作列,单击删除

后续操作

自建Kafka集群迁移上云后,请检查客户端实例接入点是否需要更新,详情请参见查看接入点