Сторирование нескольких задач в Maprectuce в потоковой передаче Hadoop

StackOverflow https://stackoverflow.com/questions/4626356

Вопрос

Я нахожусь в сценарии, где у меня есть две работы в MapReduce. Мне удобнее с Python и планируем использовать его для написания сценариев Maprectuce и используйте трансляцию Hadoop для того же. Есть удобный для цепи как рабочих заданий, когда используется следующая форма, когда используется потоковая передача Hadoop?

Map1 -> remess1 -> map2 -> under2

Я слышал много методов для достижения этого в Java, но мне нужно что-то для потоковой передачи Hadoop.

Это было полезно?

Решение

Вот отличный пост блога о том, как использовать каскадную и потоковую.http://www.xcombinator.com/2009/11/18/how-to-use-cascading-with-hadoop-streaming/

Значение здесь вы можете смешивать Java (Cascading Query Flows) с вашими пользовательскими потоковыми операциями в одном приложении. Я нахожу это гораздо менее хрупким, чем другие методы.

ПРИМЕЧАНИЕ, объект каскада в каскадном порядке позволяет цепочить несколько потоков (через вышеупомянутое блог Post, вашим потоковым заданием станет MapReduceFlow).

Отказ от ответственности: Я автор каскадирования

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

Вы можете попробовать MrJob Yelp Чтобы сделать вашу работу. Это библиотека Maprecuce MapReduce Opensource, которая позволяет писать цепные задания, которые могут быть запущены на ATOP Todoop Streaming на вашем кластере Hadoop или EC2 .. Это довольно элегантное и простая в использовании, и имеет метод, называемый вами шагами, которые вы Можете переопределить, чтобы указать точную цепочку монтажников и редукторов, которые вы хотите, чтобы ваши данные пройдут.

Оформить заказ источника в https://github.com/yelp/mrjob.
и документация http://packages.python.org/mrjob/

Как правило, я делаю это, с потоковой передачей Hadoop и Python из-за моего скрипта Bash, который я создаю для запуска заданий в первую очередь. Всегда я бегу в скрипте Bash, таким образом, я могу получить электронные письма на ошибки и электронные письма об успехе и сделать их более гибким прохождением в параметрах от другого рубина или сценария Python, который может работать в более широкой системе обработки событий.

Итак, вывод первой команды (задания) - это вход в следующую команду (задание), которая может быть переменными в вашем скрипте Bash, передаваемым в качестве аргумента из командной строки (простой и быстрой)

Возможно, вы захотите заказать оговорку http://yahoo.github.com/oozie/design.html. Двигатель рабочего процесса для Hadoop, который поможет сделать это также (поддерживает потоковое, а не проблему). У меня этого не было, когда я начал, поэтому я закончил построить свою вещь, но это система Kewl и полезная !!!!

Если вы уже пишете свой Mapper и редуктор в Python, я бы рассмотрел с помощью DUMBO, где такая операция проста. Последовательность вашей карты уменьшает задания, ваш Mapper, редуктор и т. Д. Все в одном скрипте Python, который можно запускать из командной строки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top