2014-01-07 6 views
5

Мне нужно запустить пользовательскую работу на C++ в качестве карты на Amazon, и планировал использовать потоки Hadoop для этого. Исполняемый файл C++ mapper полагается на десятка пользовательских библиотек, некоторые из которых требуют много времени для сборки.Запуск Amazon EMR с пользовательским AMI?

Я ожидал, что EMR будет поддерживать пользовательские AMI (уже есть один встроенный). Однако после тщательного просмотра документации кажется, что можно запускать EMR только на предопределенных изображениях: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-cli-commands.html.

Я что-то упустил? Если, действительно, поддерживаются только предопределенные ОИМ, каков наилучший вариант для его запуска? Очевидно, что исполняемый файл находится на s3, но могу ли я на самом деле связать его так, чтобы он не зависел от общих разделов вообще?

Спасибо.

ответ

1

Я также изучаю то же самое. Основываясь на первом взгляде на документацию, наилучшим вариантом для достижения этой цели является выполнение пользовательских параметров начальной загрузки.

http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html

Однако для нас это займет 15-20 минут, чтобы запустить пользовательский сценарий. Я надеюсь, что есть способ настроить AMI и добавить необходимое программное обеспечение в AMI вместо того, чтобы устанавливать его на каждом узле, когда они появятся.

4

Вы считаете, что из-за множества программных средств и конфигураций, требуемых на узле кластера Hadoop, в EMR допускается только Amazon, предоставляющее AMI. http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-ami.html

Вы можете использовать стандартные методы начальной загрузки для установки любого дополнительного программного обеспечения, которое требуется для запуска в вашем кластере. См. http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html, чтобы узнать больше о действиях бутстрапа.

Назад к вашему прецеденту: Зачем так долго загружаться в вашем прецеденте? Потому что есть много пакетов? Потому что вы их компилируете из источника?

В последнем случае, возможно, стоит создать ваши пакеты .deb и установить их из пользовательского репозитория, чтобы ускорить процесс начальной загрузки.

Если у вас есть много пакетов для установки, я боюсь, что сегодня нет очевидного решения. Я могу думать о моментальных снимках и томах EBS, которые создаются и прикрепляются во время загрузки, но возможность этого действительно зависит от вашего варианта использования.

2

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

Отказ от ответственности: Я работаю на Qubole.

Смежные вопросы