Запуск Amazon EMR с пользовательским AMI?

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

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

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

Благодарю.

5

Решение

Вы правы, поскольку из-за большого количества программных средств и конфигураций, необходимых для узла кластера Hadoop, только EMI, предоставленный Amazon, разрешен в EMR. 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, создаваемых и подключаемых во время начальной загрузки — но выполнимость этого действительно зависит от вашего варианта использования.

4

Другие решения

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

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

2

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

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

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

1
По вопросам рекламы [email protected]