У меня есть два потока Kafka
, request
и event
, каждый из которых разбит на общее поле requestId (последние две цифры). Я хочу присоединиться к потокам и написать HDFS
или местным filesystem
? Как написать эффективный consumer
, который учитывает только соответствующие partitions
при соединении двух streams
?Как присоединиться к двум потокам Кафки, каждый из которых имеет несколько париваний?
ответ
Вы должны использовать API потоков Kafka's, библиотеку обработки потока Apache Kafka, а не ручной пользователь. Чтобы записать данные в HDFS, вы должны использовать Kafka Connect.
Для делает присоединиться, посмотрите на этот вопрос: How to manage Kafka KStream to Kstream windowed join?
Также проверьте документацию Confluent в о Kafka Streams и Kafka Connect, чтобы начать. Если у вас есть дополнительные вопросы, пожалуйста, запустите следующий вопрос (после прочтения руководства :))
Потоки Kafka с Kafka Connect (для HDFS) - это простое решение. Однако следует отметить, что разъем HDFS для Kafka Connect доступен только с версией Kafka от Confluent. Apache Kafka Connect поставляется только с файловой машиной, а не с HDFS-писателем.
Как насчет использования Flume для записи в HDFS от Kafka? – Rubbal
Это не совсем правильно: даже если вы используете ванильный Apache Kafka, вы можете просто скачать Конфлюкс HDFS-коннектор https://www.confluent.io/product/connectors/ и использовать его. Кроме того, нет «Confluent Version of Kafka» - это просто переупаковка, но на 100% совместима с Apache Kafka (она может содержать исправленную дополнительную ошибку, но это случается редко). –
@Rubbal, я не использовал лоток для этой конкретной цели. –
Спасибо. Выглядит именно то, что мне нужно! – Rubbal
@ matthias-j-sax Я прочитал руководство, и обе эти библиотеки совместимы только с версией Confluent (благодаря рациональной строке для указания ее). Есть ли недостатки в использовании версии confluent? – Rubbal
Это неправда. Confluent, просто переупаковывает Apache Kafka, и он на 100% совместим с версией ASF. Только разъем HDFS не входит в состав Apache Kafka, но вы можете скачать его из confluent.io/product/connectors и использовать с версией ASF. Поскольку Confluent предлагает Confluent Open Source - и код на 100% совместим с ASF Kafka - нет недостатков в использовании предложения Confluent - только преимущества, поскольку вы получаете более крупный стек программного обеспечения. –