本文介绍如何在消息队列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.zip地址下载元数据导出工具。
  2. 将下载好的迁移工具上传至自建Kafka集群。
  3. 在工具所在目录运行以下命令,解压工具包和赋予JAR包可执行权限。
    unzip -o kafka-migration-assessment.jar.zip
    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

删除迁移任务

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

后续步骤

查看迁移进度