本文通过示例为您介绍如何通过EMR的集群脚本功能,快速部署使用MirrorMaker 2.0(MM2)服务同步数据。
背景信息
本文的业务场景以EMR DataFlow集群作为目的集群,并且在目的集群中以Dedicated MirrorMaker集群的方式部署MM2,即EMR DataFlow集群既作为目的集群又作为Dedicated MirrorMaker集群。在实际业务场景中,您可以将MirrorMaker集群部署到单独的服务器上。
Kafka MM2适用于下列场景:
- 远程数据同步:通过MM2,Kafka数据可以在不同地域的集群进行传输复制。
- 灾备场景:通过MM2,可以构建不同数据中心的主备两个集群容灾架构,MM2实时同步两个集群的数据。当其中一个集群不可用时,可以将上面的应用程序切换到另一个集群,从而实现异地容灾功能。
- 数据迁移场景:在业务上云、混合云、集群升级等场景,存在数据从旧集群迁移到新集群的需求。此时,您可以使用MM2实现新旧数据的迁移,保证业务的连续性。
- 聚合数据中心场景:通过MM2,可以将多个Kafka子集群的数据同步到一个中心Kafka集群,实现数据的汇聚。
Kafka MM2作为数据复制工具,具有以下功能:
- 复制topics数据以及配置信息。
- 复制consumer groups及其消费topic的offset信息。
- 复制ACLs。
- 自动检测新的topic以及partition。
- 提供MM2的metrics。
- 高可用以及可水平扩展的框架。
MM2任务有以下执行方式:
- Distributed Connect集群的connector方式(推荐):在已有Connect集群执行MM2 connector任务的方式。具体操作,请参见使用MirrorMaker 2(on Connect)跨集群同步数据。
- Dedicated MirrorMaker集群方式:不需要使用Connect集群执行MM2 connector任务,而是直接通过Driver程序管理MM2的所有任务。
您可以参照本文通过Driver程序来管理MM2任务。
- Standalone Connect的worker方式:执行单个MirrorSourceConnector任务,适合在测试场景下使用。
说明 推荐在Distributed Connect集群上启动MM2 connector任务,可以借助Connect集群的Rest服务管理MM2任务。
前提条件
使用限制
EMR DataFlow集群的Kafka软件的版本为2.12_2.4.1及以上。