Как подготовить и восстановить данные для AWS MapReduce

Я работаю с Amazon MapReduce Web Service для университетского проекта. Чтобы использовать данные для MapReduce, мне нужно выгрузить их из реляционной базы данных (AWS RDS) в S3. После завершения MapReduce мне нужно разделить выходной файл и загрузить его фрагменты в свои корзины S3.

Как это можно сделать в среде Amazon Web Services?

В лучшем случае: можно ли этого добиться без использования дополнительных экземпляров EC2, помимо тех, которые используются для RDS и MapReduce?

Я использую python для функций картографа и редуктора и спецификаторов json для потока заданий MapReduce. В противном случае я не привязан ни к языку, ни к технологии.


person Thomas    schedule 12.01.2011    source источник


Ответы (1)


Если вы посмотрите Руководство разработчика по Amazon Elastic MapReduce, вам нужно укажите расположение входных данных, выходных данных, скрипта сопоставления и скрипта редуктора в S3, чтобы создать поток заданий MapReduce.

Если вам необходимо выполнить некоторую предварительную обработку (например, создание дампа входного файла MapReduce из базы данных) или постобработку (например, разделение выходного файла MapReduce на другие места в S3), вам придется автоматизировать эти задачи отдельно от Рабочий процесс MapReduce.

Вы можете использовать boto библиотеку для написания этих сценариев предварительной и последующей обработки. Их можно запустить на экземпляре EC2 или любом другом компьютере с доступом к корзине S3. Передача данных из EC2 может быть дешевле и быстрее, но если у вас нет экземпляра EC2, доступного для этого, вы можете запускать сценарии на своем собственном компьютере... если не слишком много данных для передачи!

Вы можете зайти так далеко с автоматизацией: вы даже можете организовать весь процесс создания входных данных, запуска нового потока заданий MapReduce, ожидания завершения задания и соответствующей обработки выходных данных, так что при правильной конфигурации все это сводится к нажатию кнопки :)

person scoffey    schedule 13.01.2011
comment
boto кажется очень хорошим, но, к сожалению, вы не можете определить собственный основной класс для шагов jar, что делает его очень непрактичным для меня. - person Thomas; 24.01.2011