I've attached my two configs here.  Pay close attention to the
--num-streams argument to mirror-maker.  I have a lot of thru-put on my
topics so I ended up
matching the number of streams = number of partitions for each of my
topics.  A stream is essentially just a consumer and producer thread.  If
you have less streams/threads than number of partitions * topics
replicated, it seems like mirror-maker roundrobins the threads across the
partitions/topics, which may be fine based on your ingest rate and network
latency between clusters.

Additionally, I had to raise the java heap size considerably to prevent
mirror-maker from OOMing.

You can check the status of mirror maker and get the lag by running:
kafka-consumer-offset-checker.sh  --topic "your-topic-here" --zookeeper
src-zk-host:2181 --group mirrormaker-consumer-id-here

I *think* I also edited config/tools-log4j.properties and made mirror-maker
log info level messages by changing the first line to read as follows.
This allowed me to more easily debug issues and fine tune my settings.

log4j.rootLogger=INFO, fileAppender, stderr


consumer.properties
##################

# Zookeeper connection string
# comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"
zookeeper.connect="source-zk-host1:2181,source-zk-host2:2181"

# timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=6000

#consumer group id
group.id=mirrormaker-consumer-id-here


producer.properties
##################
# list of brokers used for bootstrapping knowledge about the rest of the cluster
# format: host1:port1,host2:port2 ...
bootstrap.servers=dest-kafka-host1:9092,dest-kafka-host2:9092

# name of the partitioner class for partitioning events; default
partition spreads data randomly (in most cases)
## I needed to use a custom partitioner to get my data to be
distributed evenly, but you'll probably
## be fine leaving this commented out.  see jira kafka-3333 if you're
curious to what I used.
# partitioner.class=

# specify the compression codec for all data generated: none, gzip, snappy, lz4.
# the old config values work as well: 0, 1, 2, 3 for none, gzip,
snappy, lz4, respectively
compression.codec=none

## Increment size of batches
batch.size:65536
client.id: mirror-maker






On Wed, Mar 9, 2016 at 5:43 AM, prabhu v <prabhuvrajp...@gmail.com> wrote:

> Thanks for the reply..
>
> I will remove the bootstrap.servers property and add zookeeper.connect in
> consumer properties and let you know....
>
> Also, is there any way we can check how much data the target data center is
> lagging behind source DC?
>
>
> On Wed, Mar 9, 2016 at 3:41 PM, Gerard Klijs <gerard.kl...@dizzit.com>
> wrote:
>
> > What do you see in the logs?
> > It could be it goes wrong because you have the bootstrap.servers property
> > which is not supported for the old consumer.
> >
> > On Wed, Mar 9, 2016 at 11:05 AM Gerard Klijs <gerard.kl...@dizzit.com>
> > wrote:
> >
> > > Don't know the actual question, it matters what you want to do.
> > > Just watch out trying to copy every topic using a new consumer, cause
> > then
> > > internal topics are copied, leading to errors.
> > > Here is a temple start script we used:
> > >
> > > #!/usr/bin/env bash
> > > export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true
> > -Dcom.sun.management.jmxremote.authenticate=false
> > -Dcom.sun.management.jmxremote.ssl=false
> > -Dcom.sun.management.jmxremote.local.only=false
> > -Djava.rmi.server.hostname=<NODE_HOSTNAME>
> > -Dcom.sun.management.jmxremote.rmi.port=<MM_JMX_PORT>"
> > > export JMX_PORT=<MM_JMX_PORT>
> > > /usr/bin/kafka-mirror-maker --consumer.config
> > $HOME_DIR/consumer.properties --producer.config
> > $HOME_DIR/producer.properties --whitelist='<REGEX_MM>' 1>>
> > $LOG_DIR/mirror-maker.log 2>> $LOG_DIR/mirror-maker.log
> > >
> > > Both the consumer and producer configs have sensible defaults, these
> are
> > out consumer.properties template:
> > >
> > > #Consumer template to be used with the mirror maker
> > > zookeeper.connect=<CONSUMER_ZOOKEEPERS>
> > > group.id=mirrormaker
> > > auto.offset.reset=smallest
> > > #next property is not available in new consumer
> > > exclude.internal.topics=true
> > >
> > > *And a producer.properties template:*
> > >
> > > #Producer template to be used with the mirror maker
> > > bootstrap.servers=<PRODUCER_BROKERS>
> > > client.id=mirrormaker
> > >
> > > Because the internal topics can't be excluded in the new consumer yet,
> > we use the old consumer.
> > >
> > > Hope this helps.
> > >
> > >
> > > On Wed, Mar 9, 2016 at 10:57 AM prabhu v <prabhuvrajp...@gmail.com>
> > wrote:
> > >
> > >> Hi Experts,
> > >>
> > >> I am trying to mirror
> > >>
> > >>
> > >>
> > >>
> > >> --
> > >> Regards,
> > >>
> > >> Prabhu.V
> > >>
> > >
> >
>
>
>
> --
> Regards,
>
> Prabhu.V
>

Reply via email to