Nano Hash - криптовалюты, майнинг, программирование

Конфлюентный коннектор HDFS: как я могу прочитать последнее смещение, если нет файлов hdfs?

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

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

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


Ответы:


1

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

13.06.2018

2

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

consumer.auto.offset.reset=latest

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

12.06.2018
  • Благодарю вас! Где я могу установить это? Я попытался установить его в файле свойств коннектора, но все еще вижу auto.offset.reset = earliest в ConsumerConfig values. 12.06.2018
  • Лично я устанавливаю его в свойствах Worker, но вы также должны иметь возможность установить его в свойствах конкретной задачи. Примечание. Я тестировал это только с S3 Connect. 12.06.2018
  • Хорошо. Я смог установить его в файле свойств рабочего, и он отображается в файле ConsumerConfigs. Я удалил все файлы hdfs (чтобы в имени файла не было информации о смещении) и запустил коннектор, но я все еще вижу, что он читает со смещения 0, а не с последнего смещения. Я запустил bin/kafka-consumer-groups с опцией --describe для проверки current_offset. 12.06.2018
  • Какую версию Confluent вы используете? Я думаю, что в версии 4.0 была реорганизована часть логики HDFS. 12.06.2018
  • Я использую версию Confluent 4.0.0. 12.06.2018
  • Хм. Как я уже сказал, я проверил, что этот параметр работает только на S3 Connect. Я полагаю, вы видели этот комментарий? stackoverflow.com/questions/49837808/ 12.06.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..