Потребитель Kafka против Apache Flink

Я сделал poc, в котором я прочитал данные из Kafka с помощью потоковой передачи искр. Но наша организация использует либо Apache Flink, либо клиент Kafka для чтения данных из Apache kafka в качестве стандартного процесса. Поэтому мне нужно заменить потоковую передачу Kafka на потребителя Kafka или Apache Flink. В моем случае использования приложения мне нужно читать данные из kafka, фильтровать данные json и помещать поля в cassandra, поэтому рекомендуется использовать потребителя Kafka, а не flink / другие потоки, поскольку мне действительно не нужно выполнять какую-либо обработку с Kafka данные json. Поэтому мне нужна ваша помощь, чтобы разобраться в приведенных ниже вопросах:

  1. Могу ли я с помощью потребителя Kafka добиться такого же непрерывного чтения данных, как и мы, в случае потоковой передачи искр или мерцания?

  2. Достаточно ли для меня потребителя kafka, учитывая, что мне нужно читать данные из kafka, десериализовать с использованием avro scehma, фильтровать поля и помещать в кассандру?

  3. Потребительское приложение Kafka можно создать с использованием потребительского API Kafka, верно?

  4. Есть ли какие-нибудь недостатки в моем случае, если я просто использую Kafka Consumer вместо Apache flink?


person k_b    schedule 26.03.2017    source источник
comment
Вам также следует рассмотреть возможность использования Streams API Kafka. Это намного мощнее, чем потребительский API Kafka. kafka.apache.org/0102/documentation/streams и docs.confluent.io/current/streams   -  person Michael G. Noll    schedule 26.03.2017
comment
Как вы планируете развернуть свое приложение? Существуют ли уже какие-либо системы для развертывания в вашей организации? Каковы долгосрочные планы по системе? Планируете ли вы продолжать использовать его только для загрузки в Cassandra или планируете выполнять какие-либо вычисления с данными в потоке?   -  person Robert Metzger    schedule 26.03.2017
comment
@rmetzger: Планируется развернуть его в независимом кластере, где может выполняться задание пользовательского API. У нас нет существующей системы для развертывания вещей, это будет новая среда. Идея состоит в том, чтобы просто прочитать данные из kafka, преобразовать в json с помощью avro, отфильтровать необходимые поля и сохранить в cassandra, без вычислений. Ваши предложения будут полезны.   -  person k_b    schedule 27.03.2017
comment
Ммм :) Сложно что-то подсказать. Это зависит от ваших знаний в команде. Если бы большинство из них раньше использовали Hadoop YARN, я бы развернул Flink с помощью YARN. Если вы используете свою собственную систему для развертывания и мониторинга JVM в кластере, вы можете рассмотреть Kafka Streams. На самом деле я бы посоветовал опробовать обе системы и посмотреть, какая из них лучше подходит для ваших нужд.   -  person Robert Metzger    schedule 28.03.2017


Ответы (1)


Во-первых, давайте взглянем на Flinka. Коннектор Kafak и Spark Streaming с Kafka, оба они используют Kakfa Consumer API (простой или высокоуровневый API) внутри, чтобы получать сообщения от Apache Kafka для своей работы.

Итак, по поводу ваших вопросов:

1) Да

2) Да. Однако, если вы используете Spark, вы можете рассмотреть возможность использования коннектора Spark Cassandra, который помогает мы эффективно сохраняем данные в Cassandara

3) Право

4) Как упоминалось выше, Flink также использует для своей работы потребителя Kafka. Более того, это распределенная потоковая и пакетная обработка данных, она помогает нам эффективно обрабатывать данные после использования из Kafka. В ваших случаях для сохранения данных в Cassandra вы можете использовать Flink Cassandra Connector, а не кодировать самостоятельно.

person NangSaigon    schedule 26.03.2017
comment
Спасибо за ваш вклад! Согласно вашему ответу, похоже, у нас нет встроенного API для хранения данных в Cassandra на случай, если я использую потребительский API Kafka для чтения данных из Kafka? Не могли бы вы подтвердить? - person k_b; 27.03.2017
comment
Вы можете использовать коннектор Kafka-Cassandra из Confluent.io: confluent.io/blog/ или из сообщества: github.com/tuplejump/ кафка-коннект-кассандра. - person NangSaigon; 28.03.2017