2017-01-18 3 views
0

У меня есть два потока Kafka, request и event, каждый из которых разбит на общее поле requestId (последние две цифры). Я хочу присоединиться к потокам и написать HDFS или местным filesystem? Как написать эффективный consumer, который учитывает только соответствующие partitions при соединении двух streams?Как присоединиться к двум потокам Кафки, каждый из которых имеет несколько париваний?

ответ

2

Вы должны использовать API потоков Kafka's, библиотеку обработки потока Apache Kafka, а не ручной пользователь. Чтобы записать данные в HDFS, вы должны использовать Kafka Connect.

Для делает присоединиться, посмотрите на этот вопрос: How to manage Kafka KStream to Kstream windowed join?

Также проверьте документацию Confluent в о Kafka Streams и Kafka Connect, чтобы начать. Если у вас есть дополнительные вопросы, пожалуйста, запустите следующий вопрос (после прочтения руководства :))

+0

Спасибо. Выглядит именно то, что мне нужно! – Rubbal

+0

@ matthias-j-sax Я прочитал руководство, и обе эти библиотеки совместимы только с версией Confluent (благодаря рациональной строке для указания ее). Есть ли недостатки в использовании версии confluent? – Rubbal

+1

Это неправда. Confluent, просто переупаковывает Apache Kafka, и он на 100% совместим с версией ASF. Только разъем HDFS не входит в состав Apache Kafka, но вы можете скачать его из confluent.io/product/connectors и использовать с версией ASF. Поскольку Confluent предлагает Confluent Open Source - и код на 100% совместим с ASF Kafka - нет недостатков в использовании предложения Confluent - только преимущества, поскольку вы получаете более крупный стек программного обеспечения. –

0

Потоки Kafka с Kafka Connect (для HDFS) - это простое решение. Однако следует отметить, что разъем HDFS для Kafka Connect доступен только с версией Kafka от Confluent. Apache Kafka Connect поставляется только с файловой машиной, а не с HDFS-писателем.

+0

Как насчет использования Flume для записи в HDFS от Kafka? – Rubbal

+1

Это не совсем правильно: даже если вы используете ванильный Apache Kafka, вы можете просто скачать Конфлюкс HDFS-коннектор https://www.confluent.io/product/connectors/ и использовать его. Кроме того, нет «Confluent Version of Kafka» - это просто переупаковка, но на 100% совместима с Apache Kafka (она может содержать исправленную дополнительную ошибку, но это случается редко). –

+0

@Rubbal, я не использовал лоток для этой конкретной цели. –

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

  • Нет связанных вопросов^_^