kafka mirrormaker工具出错[kafka版本0.10]

y53ybaqx  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(437)

我试图使用mirrormaker工具将数据从一个主集群复制到一个备份集群,但出现以下错误。

nykpsr000001726$ bin/kafka-mirror-maker.sh --consumer.config config/mirror-consumer.properties --producer.config config/mirror-
producer.properties --whitelist my-replicated-topic

    [2017-02-03 06:17:00,193] FATAL [mirrormaker-thread-0] Mirror maker thread failure due to  (kafka.tools.MirrorMaker$MirrorMaker
    Thread)
    java.lang.IllegalArgumentException: Invalid timestamp -1
            at org.apache.kafka.clients.producer.ProducerRecord.<init>(ProducerRecord.java:60)
            at kafka.tools.MirrorMaker$defaultMirrorMakerMessageHandler$.handle(MirrorMaker.scala:678)
            at kafka.tools.MirrorMaker$MirrorMakerThread.run(MirrorMaker.scala:414)
    [2017-02-03 06:17:00,422] FATAL [mirrormaker-thread-0] Mirror maker thread exited abnormally, stopping the whole mirror maker.

下面是消费者和生产者的配置细节。
镜像消费者属性

group.id=KafkaMirror-test-1

# consumer timeout should be -1 (default)

zookeeper.connect=ldnpsr000001131:2181
auto.offset.reset=smallest

mirror-producer.properties属性

bootstrap.servers=nykpsr000001726:9092

非常感谢您的快速提示。

mlmc2os5

mlmc2os51#

官方文件显示,您似乎面临时间戳问题:
目前,kafka streams不能很好地处理从timestampextractor返回的无效(即负)时间戳,但会出现异常,因为对于任何基于时间的操作符(如window aggregates或join),负时间戳都无法以有意义的方式处理。
负时间戳的出现有多种原因。
您使用的主题是由旧的kafka生产者客户端(即版本0.9或更早版本)编写的,这些客户端不使用新的消息格式,因此,如果主题配置为log.message.timestamp.type=createtime,则元数据时间戳字段默认为-1
在将kafka集群从0.9升级到0.10之后,您将使用0.10之前的主题:在这里,使用0.9生产者生成的所有数据都与0.10消息格式不兼容(并且默认为timestamp-1)
您使用第三方生产者客户机正在写入的主题,该主题允许嵌入负时间戳(kafkaproducer确实检查负时间戳,但在这种情况下会引发一个异常,首先防止时间戳无效)
用户提供了一个定制的时间戳提取器,用于为有效负载数据(即,键值对)提取时间戳,并且这个定制的提取器可能返回负的时间戳。
在这里你可以阅读所有的信息。

相关问题