更新时间:2023-03-17 GMT+08:00
Kafka数据
当我们需要在两个Kafka集群间做数据同步,或者将原有Kafka集群上的数据搬迁到新的Kafka集群上时就需要用到Kafka数据同步的利器——MirrorMaker。MirrorMaker是Kafka内嵌的一个工具,其内部实际上是集成了Kafka的Consumer和Producer,它可以从一个Kafka集群消费数据然后写入另一个Kafka集群,从而实现Kafka集群间的数据同步。
本章节介绍利用MRS服务提供的MirroMaker工具实现Kafka集群数据同步、迁移的方法,请先参考打通数据传输通道完成两个集群的网络互通后再参考本章节操作Kafka数据迁移。
操作步骤
3.x之前版本:
- 配置集群Kerberos互信,具体配置方式请参考配置跨集群互信。
- 若计划在源集群使用MirrorMaker工具,请登录目的集群的集群详情页面,选择“组件管理”。若计划在目的集群使用MirrorMaker工具,请登录源集群的集群详情页面,选择“组件管理”。
- 选择“Kafka > 服务配置”,将页面右侧的“基础配置”切换为“全部配置”。
- 选择“Broker > 自定义”配置项增加如下规则。
sasl.kerberos.principal.to.local.rules = RULE:[1:$1@$0](.*@XXXYYYZZZ.COM)s/@.*//,RULE:[2:$1@$0](.*@ XXXYYYZZZ.COM)s/@.*//,DEFAULT
其中:XXXYYYZZZ.COM为数据发送端集群(源集群)的域名(字母需大写)。
- 单击“保存配置”,按照提示选择“重新启动受影响的服务或实例。”并单击“确定”,重启Kafka服务。
- 在计划使用MirrorMaker工具的集群,登录集群详情页面,选择“管理”。
- 选择“Kafka > 服务配置”,切换“基础配置”为“全部配置”,“角色”为“MirrorMaker”。
配置参数说明:
- source和dest标签中的bootstrap.servers参数分别是源Kafka集群和目的Kafka集群的broker节点列表及端口信息
- source和dest标签中的security.protocol参数请根据源Kafka集群和目的Kafka集群的服务端的实际配置情况自行选择
- 如果源Kafka集群(source)或者目的Kafka集群(dest)为安全集群则需要配置source和dest标签中的kerberos.domain.name(如果是本机可不配置,非本机根据实际值进行配置)和sasl.kerberos.service.name(默认:kafka)参数
- 在mirror标签中设置whitelist,即需要同步的topic名称。
- 单击“保存配置”,按照提示选择“重新启动受影响的服务或实例。”并单击“是”,重启MirrorMaker实例。
待MirrorMaker重启完成后,数据迁移任务即已启动。
父主题: 数据备份与恢复