Вопрос:

Ошибка с инструментом kafka Mirrormaker [версия 0.10 kafka]

apache-kafka

758 просмотра

1 ответ

273 Репутация автора

Я пытаюсь использовать инструмент 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.

ниже приведена деталь конфигурации для потребителя и производителей.

mirror-consumer.properties

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

Очень ценю быструю подсказку.

Автор: Joey Trang Источник Размещён: 03.02.2017 11:51

Ответы (1)


0 плюса

300 Репутация автора

Решение

Похоже, что вы столкнулись с проблемой с отметками времени, официальная документация гласит:

В настоящее время Kafka Streams не обрабатывает недопустимые (то есть отрицательные) временные метки, возвращенные из TimestampExtractor, но терпит неудачу с исключением, потому что отрицательные временные метки не могут быть обработаны осмысленным образом для любых основанных на времени операторов, таких как агрегаты окон или объединения.

Отрицательная временная метка может возникнуть по нескольким причинам.

  1. Вы используете тему, написанную старыми клиентами-производителями Kafka (т. Е. Версией 0.9 или более ранней), которые не используют новый формат сообщения, и, таким образом, поле метки времени метаданных по умолчанию имеет значение -1, если тема настроена с помощью log.message .timestamp.type = CreateTime
  2. Вы используете тему до 0.10 после обновления кластера Kafka с 0.9 до 0.10: здесь все данные, созданные с помощью производителей 0.9, не совместимы с форматом сообщений 0.10 (по умолчанию используется отметка времени -1)
  3. Вы используете тему, в которую записывается сторонний клиент-продюсер, который позволяет встраивать отрицательные временные метки (KafkaProducer проверяет отрицательную временную метку и в этом случае создает исключение для предотвращения неправильной временной метки)
  4. Пользователь предоставляет пользовательский экстрактор меток времени, который извлекает метки времени для данных полезной нагрузки (т. Е. Пары ключ-значение), и этот пользовательский экстрактор может возвращать отрицательные метки времени.

Здесь вы можете прочитать всю информацию.

Автор: jose.goncabel Размещён: 03.02.2017 02:31
Вопросы из категории :
32x32