Переменная/циклическая последовательность заданий

Я рассматриваю возможность использования hadoop/mapreduce для выполнения проекта и не совсем понял, как настроить поток заданий, состоящий из переменного количества уровней, которые должны обрабатываться последовательно.

E.g.:

Job 1: Map source data into X levels.
Job 2: MapReduce Level1 -> appends to Level2
Job 3: MapReduce Level2 -> appends to LevelN
Job N: MapReduce LevelN -> appends to LevelN+1

И так до финального уровня. Суть в том, что каждый уровень должен включать в себя свои собственные исходные данные, а также результаты предыдущего уровня.

Я смотрел на свинью, улей, хамаке и каскадирование, но еще не видел четкой поддержки чего-то подобного.

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

Спасибо!


person David Bennett    schedule 02.09.2010    source источник


Ответы (2)


Oozie http://yahoo.github.com/oozie/ — это сервер с открытым исходным кодом, выпущенный Yahoo. для управления рабочим процессом Hadoop & Pig, как вы просите

Cloudera имеет его в своем последнем дистрибутиве с очень хорошей документацией https://wiki.cloudera.com/display/DOC/Oozie+Installation

вот видео http://sg.video.yahoo.com/watch/5936767/15449686 от Yahoo

person Joe Stein    schedule 02.09.2010

Вы должны быть в состоянии сгенерировать код свиньи для этого довольно легко, используя Piglet, Ruby Pig DSL: http://github.com/iconara/piglet

person SquareCog    schedule 05.09.2010