Получить общее количество файлов от процессора FetchHDFS

Есть ли способ получить общее количество файлов от одного запуска процессора FetchHDFS?

мой вариант использования ==> читать все файлы из каталога (hdfs), объединять их и затем выполнять дальнейшую обработку. Но чтобы остановить процессор слияния (пока все файлы не будут в очереди), мне нужно количество файлов, чтобы установить «Минимальное количество записей».

Я могу использовать wait / notify, но тогда мне все еще нужно общее количество, поэтому установите флаги правильно.

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

Обновление №2 (процессор слияния) Согласно конфигурации, процессор слияния должен пропускать файл каждые 300 секунд. В моем случае общее количество входных файлов составляет 2000, но они поступают медленно (около 200 секунд). Итак, приведенная ниже конфигурация должна быть достаточно хорошей, чтобы объединить все файлы. Но это не работает. Я все еще вижу, как процессор слияния позволяет файлам идти с гораздо меньшим интервалом. Получить общее количество файлов от процессора FetchHDFS

Обновление # 3 == общий размер всех файлов 1600 составляет 318 КБ, что намного меньше, чем размер бункера 128 МБ

Получить общее количество файлов от процессора FetchHDFS

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
515
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ListHDFS/FetchHDFS не предоставляет количество файлов, взятых при конкретном запуске. Однако вы можете использовать ExecuteScript или UpdateAttribute и с помощью Wait/Notify, и заставить его работать.

Самым простым решением, которое я предлагаю, является то, что MergeContent также принимает одно необязательное свойство, называемое Max Bin Age, вы можете настроить здесь некоторые единицы времени, такие как 2 mins или 30 secs, и установить для Minimum Number of Entries более высокое число. Таким образом, независимо от того, что размер очереди не соответствует настроенному номеру в Min. number of entries, по истечении времени, настроенного для Max bin age, эти файлы из очереди будут взяты и объединены вместе. Однако это может потребовать некоторых предположений и экспериментов, чтобы получить правильную конфигурацию.

Я настроил процессор слияния на более высокий предел, поэтому все файлы могут быть объединены (я обновил свой исходный вопрос). Это не работает.

Rakesh Prasad 10.09.2018 18:08

Это потому, что «Макс. Размер группы »настроен.

Sivaprasanna Sethuraman 11.09.2018 05:42

Когда вы настраиваете Min. Group Size и Max. Group Size, потоковые файлы, превышающие максимальный размер, будут обрабатываться в собственном бункере, поэтому вы видите меньшее количество файлов, объединенных вместе.

Sivaprasanna Sethuraman 11.09.2018 05:55

общий размер всех потоковых файлов (1600) составляет ~ 300 КБ. и размер корзины составляет 128 МБ, поэтому не уверен, почему процессор Merge позволяет меньшей группе уйти. Я ожидаю 1 слияние, у меня получается 178. см. Обновление №3 (в исходном сообщении).

Rakesh Prasad 11.09.2018 06:20

У меня нет полных знаний о свойствах Min. Group Size и Max. Group Size. У меня был странный опыт их использования. В моих сценариях использования никогда не было необходимости настраивать эти свойства. Я бы посоветовал вам написать на [email protected] для большей ясности.

Sivaprasanna Sethuraman 11.09.2018 06:33

наконец-то сработало. Остальные значения Minimum Number of Entries = 1 остались такими же, как на скриншоте в обновлении №3 (исходный пост). Спасибо за ваше предложение. Это помогло мне с проблемой, хотя получение количества файлов из listHDFS / File по-прежнему является далекой мечтой :(

Rakesh Prasad 11.09.2018 07:35

Другие вопросы по теме