本文介绍如何在云消息队列 Kafka 版控制台创建元数据导入任务,将元数据迁移至云消息队列 Kafka 版已有实例。
前提条件
- 购买并部署云消息队列 Kafka 版实例: 说明- 购买实例的规格可参考步骤一:规格评估。 
使用限制
Serverless实例暂不支持元数据导入任务。
背景信息
Kafka集群元数据是指Kafka集群的Topic和Group配置信息。Kafka集群元数据存储于ZooKeeper上,Kafka集群各个节点从ZooKeeper中获取最新的元数据。因此,集群的各个节点的元数据被导出时都是最新且相同的。Kafka集群元数据可以被导出成一份JSON文件,然后被导入到另一个Kafka集群,实现自建Kafka集群元数据备份。
元数据迁移是指将自建Kafka集群的元数据迁移到云消息队列 Kafka 版实例。您可以将自建Kafka集群元数据导出,然后导入云消息队列 Kafka 版实例,云消息队列 Kafka 版会解析成功导入的元数据,并支持在创建任务时可视化配置Topic和Group,配置完成后在目标实例中创建对应的Topic和Group,实现自建Kafka集群元数据迁移上云。
步骤一:规格评估
使用规格评估功能,控制台将会根据您的Kafka集群数据为您推荐选型。
- 登录云消息队列 Kafka 版控制台,在概览页面的资源分布区域,选择地域。 
- 在左侧导航栏,单击迁移,然后单击元数据导入。 
- 在元数据导入页签,单击规格评估。 
- 在规格评估面板,输入自建集群信息,获取云消息队列 Kafka 版实例规格建议。 - 参数 - 说明 - 示例值 - 服务端版本 - 您自建集群中使用的Kafka的版本。 - 0.10.x - IDC 迁移 - 是否为IDC机房迁移。 - 是 - 集群峰值流量 - 生产或消费流量峰值。单位:MB/s - 20 - 公网流量 - 如果不需要访问公网,请填写0。单位:MB/s - 0 - SSD 磁盘 - 您的磁盘类型是否为SSD。 - 是 - 磁盘容量 - 存储磁盘总大小。单位:GB。 - 500 - 分区总数 - 需要迁移的Topic的分区总数。 - 800 - 副本数量 - Topic的副本数量。 - 3个副本 - 使用场景 - 生产消费使用场景。 - 业务消息 - RT 延时要求 - 生产消费RT延时要求。 - 无特殊要求 - 输入以上参数后,单击确定,会在规格评估面板上方显示推荐实例规格。  
步骤二:导出元数据
使用元数据导出工具导出自建Kafka集群的元数据文件。
- 下载元数据导出工具,下载链接如下:kafka-migration-assessment.jar。 
- 将下载好的工具上传至自建Kafka集群。 
- 运行以下命令,赋予JAR包可执行权限。 - chmod 777 kafka-migration-assessment.jar
- 运行以下命令,导出元数据。 - java -jar kafka-migration-assessment.jar MigrationFromZk --sourceZkConnect <yourHost:yourPort> --sourceBootstrapServers <yourHost:yourPort> --targetDirectory <yourDirectoryName> --fileName <yourFileName> --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 版控制台,在概览页面的资源分布区域,选择地域。 
- 在左侧导航栏,单击迁移,然后单击元数据导入。 
- 在元数据导入页签,单击创建任务。 
- 在创建导入元数据任务面板,编辑以下参数,单击创建。 - 在创建任务页签,设置任务名称和目标实例,上传步骤二:导出元数据中获取的元数据文件。 
- 在编辑 Topic页签,您可以执行以下操作: - 新增Topic:单击新增Topic,填写Topic的名称、描述、分区数、消息类型。 
- 编辑Topic:单击右侧操作列的编辑,修改Topic的描述、分区数、消息类型和日志清理策略。 
- 删除Topic:单击右侧操作列的删除,在提示对话框中单击确认。 
 
- 在编辑 Group页签,您可以执行以下操作: - 新增Group:单击新增Group,填写Group ID和描述。 
- 编辑Group:单击右侧操作列的编辑,修改Group的描述。 
- 删除Group:单击右侧操作列的删除,在提示对话框中单击确认。 
 
 - 创建完成后,在迁移页面可查看目标任务的Topic 迁移进度和Group 迁移进度单击右侧操作列的详情查看详细信息。 
步骤四:查看迁移结果
- 登录云消息队列 Kafka 版控制台,在概览页面的资源分布区域,选择地域。 
- 在左侧导航栏,单击实例列表。 
- 在实例列表页面,单击目标实例名称。 
- 查看资源列表。 - 在左侧导航栏,单击Topic 管理,在Topic 管理页面的Topic列表中查看已创建的Topic。 
- 在左侧导航栏,单击Group 管理,在Group 管理页面的Group列表中查看已创建的Group。