本文介绍如何在云消息队列 Kafka 版控制台创建迁移任务,将元数据迁移至云消息队列 Kafka 版已有实例。
前提条件
- 下载JDK 8
- 购买并部署云消息队列 Kafka 版实例:
背景信息
Kafka集群元数据是指Kafka集群的Topic和Group配置信息。Kafka集群元数据存储于ZooKeeper上,Kafka集群各个节点从ZooKeeper中获取最新的元数据。因此,集群的各个节点的元数据被导出时都是最新且相同的。Kafka集群元数据可以被导出成一份JSON文件,然后被导入另一个Kafka集群,实现自建Kafka集群元数据备份。
元数据迁移是指将自建Kafka集群的元数据迁移到阿里云云消息队列 Kafka 版实例。您可以将自建Kafka集群元数据导出,然后导入云消息队列 Kafka 版实例,云消息队列 Kafka 版会根据成功导入的元数据在目标云消息队列 Kafka 版实例中创建对应的Topic和Group,实现自建Kafka集群元数据迁移上云。
导出元数据
使用元数据导出工具导出自建Kafka集群的元数据文件。
- 访问kafka-migration-assessment.jar地址下载元数据导出工具。
- 将下载好的迁移工具上传至自建Kafka集群。
- 在工具所在目录运行以下命令,解压工具包和赋予JAR包可执行权限。
unzip -o kafka-migration-assessment.jar.zip
chmod 777 kafka-migration-assessment.jar
- 运行以下命令,导出元数据。
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文件,导出元数据成功。
在配置的文件存放目录下可以看到导出元数据文件,下载保存至本地。
创建迁移任务并迁移元数据
- 登录云消息队列 Kafka 版控制台。
- 在概览页面的资源分布区域,选择地域。
- 在左侧导航栏,单击迁移。
- 在迁移上云页面,单击创建任务。
- 在创建任务配置向导页面,完成以下操作并单击下一步。
- 在描述文本框输入迁移上云的任务名称。
- 在元数据右侧,单击点击上传元数据文件,选择已提前准备好的JSON格式的元数据文件上传。
- 在购买实例配置向导页面,单击下一步。
- 在部署实例配置向导页面,选择已部署的云消息队列 Kafka 版实例,单击创建任务。在迁移页面可以看到任务状态为迁移中。迁移成功后,即可开始使用迁移上云的Topic和Group。
删除迁移任务
在迁移页面,找到待删除的目标任务,在其右侧操作列,单击删除。