Как подготовить данные по уходу за AWS MapReduce - PullRequest
0 голосов
/ 12 января 2011

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

Что является хорошим способом сделать это в среде Amazon Web Services?

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

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

1 Ответ

2 голосов
/ 14 января 2011

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

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

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

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

...