通过元数据文件迁移上云

本文介绍如何在云消息队列 Kafka 版控制台创建迁移任务,将元数据迁移至云消息队列 Kafka 版已有实例。

前提条件

背景信息

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

元数据迁移是指将自建Kafka集群的元数据迁移到阿里云云消息队列 Kafka 版实例。您可以将自建Kafka集群元数据导出,然后导入云消息队列 Kafka 版实例,云消息队列 Kafka 版会根据成功导入的元数据在目标云消息队列 Kafka 版实例中创建对应的Topic和Group,实现自建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. 元数据右侧,单击点击上传元数据文件,选择已提前准备好的JSON格式的元数据文件上传。

  6. 购买实例配置向导页面,单击下一步
  7. 部署实例配置向导页面,选择已部署的云消息队列 Kafka 版实例,单击创建任务
    迁移页面可以看到任务状态为迁移中。迁移成功后,即可开始使用迁移上云的Topic和Group

删除迁移任务

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

后续步骤

查看迁移进度