1

У меня есть система, которая передает данные Avro в несколько тем Kafka.
Я хочу передать эти данные в HDFS. Я столкнулся с конфлюэнтом, но не уверен, как я могу отправить данные в HDFS без запуска kafka-avro-console-producer.Невозможно передать данные Avro в HDFS с использованием Confluent Platform

шагов я выполнил:

  1. У меня есть свой Кафка и Zookeeper работают, так что я только начал схему реестр сливающихся.

  2. Я начал kafka-connect-hdfs после смены названия темы. Этот шаг также успешный. Он может подключаться к HDFS.

После этого я начал нажимать данные на Kafka, но сообщения не были перенесены в HDFS.

Пожалуйста, помогите. Я новичок в Confluent.

+0

Какая версия Confluent вы используете? Последний, т. Е. Версия 3.1.1? –

+0

confluent-3.1.1 – chaitu

ответ

0

Вы можете избежать использования продюсера kafka-avro-console и использовать своего собственного производителя для отправки сообщений по темам, но мы настоятельно рекомендуем использовать Regy Schema Registry (https://github.com/confluentinc/schema-registry) для управления вашими схемами и использования Avro сериализатор, который связан с реестром Schema, чтобы сохранить данные Avro согласованными. Есть хорошая запись о том, почему это хорошая идея сделать here.

Если вы можете отправлять сообщения, созданные с помощью производителя kafka-avro-console, в HDFS, ваша проблема, скорее всего, в разъеме kafka-connect-hdfs не сможет десериализовать данные. Я предполагаю, что вы проходите через quickstart guide. Лучшие результаты получат от вас использование того же сериализатора с обеих сторон (в и из Kafka), если вы собираетесь писать Avro в HDFS. Как этот процесс работает, описан in this documentation.

+0

Шаги Я последовал за ним и столкнулся с нижеследующим исключением.1) запустил kafka-avro-console-продюсер со своей схемой.2) начал kafka-connect-hdfs.ERROR Task hdfs-sink-0 бросил непроверенный и неисправимое исключение org.apache.kafka.connect.errors.DataException: не удалось десериализовать данные в Avro: atio.confluent.connect.avro.AvroConverter.toConnectData (AvroConverter.java:109) Вызвано: org.apache.kafka.common .errors.SerializationException: десериализация ошибки Avro message для id -1Caused by: org.apache.kafka.common.errors.SerializationException: неизвестный магический байт! – chaitu

+0

Используете ли вы тот же экземпляр реестра схемы для производителя консоли и рабочего соединения? По умолчанию они ищут локальный хост и могут искать схему, вам нужно указывать каждый на один экземпляр – dawsaw

Смежные вопросы