Разъединенный соединитель HDFS: как я могу прочитать из последнего смещения, когда нет файлов hdfs? - PullRequest
0 голосов
/ 12 июня 2018

У нас есть приложение-производитель, которое работает уже несколько дней и выдает данные в тему A.Мы хотим запустить hdfs-коннектор для чтения из темы A, но НЕ со смещения 0 (поскольку это приведет к огромному отставанию).Мы хотим начать со смещения последнее (в тему А постоянно поступают новые данные).

1) Так как коннектор получает информацию о смещении из названий тем в hdfs, как мы можем читать из последнего смещения, поскольку в hdfs нет файлов?

2) Один вариант, который я могу придумать, - это создание фиктивных файлов с последними смещениями для каждого раздела вручную, но мы говорим о 60 разделах в теме. А так, есть ли более элегантный способ сделать это?

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

NoName , возможность соединителя HDFS для сброса к последнему принятому смещению при отсутствии имен файлов в HDFS была добавлена ​​недавно.

Вы найдете его в версиях 4.0.1 или 4.1.0 и более поздних версиях.

Разъем HDFS - это разъем приемника, который самостоятельно управляет смещениями потребителей.Это сделано для того, чтобы обеспечить семантику при экспорте файлов в HDFS.В версиях, предшествующих приведенному выше, если соединитель не обнаружит никаких файлов в HDFS, он начнет использовать с самого раннего смещения темы, независимо от каких-либо пользовательских настроек.

Вы можете найти связанные изменения, которые теперь позволяют соединителю просматривать зафиксированные смещения при отсутствии файлов в HDFS здесь:

https://github.com/confluentinc/kafka-connect-hdfs/pull/299 и https://github.com/confluentinc/kafka-connect-hdfs/pull/305

0 голосов
/ 12 июня 2018

Вы можете установить это свойство, чтобы ваша группа потребителей Connect начинала с последнего доступного смещения в теме

consumer.auto.offset.reset=latest

Хотя Connect обычно довольно быстро догоняет большой кластер и 1 задачу на разделтак что начинать с самого раннего не должно быть так плохо

...