В Hadoop, как обрабатывать ежедневно увеличивающиеся данные

В Hadoop, как обрабатывать ежедневно увеличивающиеся данные:

Например:

1-й день у меня может быть 1 миллион файлов в какой-то входной папке (например, hadoop/demo)

2-й день в той же папке файлы могут увеличиться с существующего 1 миллиона файлов + еще один новый 1 миллион файлов, всего 2 миллиона.

аналогично 3-й 4-й день... так держать.

Мое ограничение -> файлы 1-го дня не должны обрабатываться на следующий день.

(i.e) Уже обработанные файлы не должны обрабатываться снова, когда к ним добавляются новые файлы. В частности, следует обрабатывать только новые добавленные файлы, а старые файлы следует игнорировать.

Так помогите мне, как я могу решить эту проблему.

Тем не менее, если вы не поняли ограничение, пожалуйста, сообщите, где это неясно, чтобы я мог подробнее рассказать о своем ограничении!


person Balaji    schedule 10.02.2012    source источник


Ответы (1)


Это не поддерживается самим Hadoop, поскольку является частью логики приложения. Я бы предложил какое-то решение на основе HDFS, поэтому у вас будет каталог (или лучшая иерархия каталогов с подкаталогом на каждый день) с данными, которые еще предстоит обработать.
Ваша ежедневная работа должна брать туда все данные, обрабатывать их и перемещать в папку «обработанные».
Обычный компромисс, который имеет смысл, состоит в том, чтобы сделать логику таким образом, чтобы случайная двойная обработка некоторого файла не вызывала проблем.
. В этом случае сбой задания после обработки, но перед перемещением не создаст проблем.
Вместо ежедневного планирования вы можете использовать некоторые инструменты рабочего процесса, способные запускать задания по доступности данных, хотя я лично этого не делал. т использовать их еще.

person David Gruzman    schedule 10.02.2012
comment
Как сказал Дэвид, Oozie идеально подходит для такого рода проблем и поможет вам отслеживать, какие дни не удалось обработать. - person Chris White; 23.03.2012