1. 程式人生 > >kafka資料同步/映象工具 kafka mirror maker

kafka資料同步/映象工具 kafka mirror maker

預設安裝kafka後有個Kafka MirrorMaker服務,無法啟動。

2016-08-05 15:20:50,333 INFO kafka.tools.MirrorMaker$: Starting mirror maker

2016-08-05 15:20:50,356 ERROR kafka.tools.MirrorMaker$: Exception when starting mirror maker.  

從網上搜索相關文章,MirrorMaker為kafka的映象工具,如果沒有這個需求就可以不啟動這個服務。

公司資料收集後會寫入kafka叢集,近期涉及到機房搬遷,在完成機房搬遷移前,兩個機房都有業務需要某些topic的資料,兩種處理方案:1是資料寫入時候雙寫 2是老機房資料寫入完成後再同步至新機房kafka叢集。本文介紹kafka自帶的叢集映象工具MirrorMaker,實現kafka叢集間的資料同步。 一、概括來說MirrorMaker就是kafka生產者與消費者的一個整合,通過consumer從源Kafka叢集消費資料,然後通過producer將資料重新推送到目標Kafka叢集,如下圖:

二、MirrorMaker的使用相對也比較簡單,下面說下啟動命令及相關配置 啟動指令碼在$KAFKA_HOME/bin目錄下,可通過命令kafka-run-class.sh kafka.tools.MirrorMaker檢視相關說明:

說明: whitelist、blacklist:該工具可以同步源叢集所有的或者部分topic,可以用白名單描述要同步的topic,用黑名單描述不需要同步的topic,多個topic直接逗號分隔,並且支援萬用字元(java http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html)

consumer.config:配置源kafka叢集消費者相關資訊

zookeeper.connect=zk1:2181,zk2:2181 group.id=mirrorMaker producer.config :配置目標kafka叢集生產者相關資訊 metadata.broker.list=broker1:9092,broker2:9092   compression.codec=none 啟動命令: sh $KAFKA_HOME/bin/kafka-run-class.sh kafka.tools.MirrorMaker --consumer.config $KAFKA_HOME/config/mirrorMakerConsumer.config --num.streams 2 --producer.config $KAFKA_HOME/config/amirrorMakerProducer.config  —num.producers 2 --whitelist="topic1"

./bin/kafka-mirror-maker.sh --consumer.config sourceCluster1Consumer.config --num.streams 2 --producer.config sourceCluster2Consumer.config --whitelist="topic2"