Numpy и Scipy с Amazon Elastic MapReduce - PullRequest
       14

Numpy и Scipy с Amazon Elastic MapReduce

9 голосов
/ 11 ноября 2011

Используя mrjob для запуска кода Python на Amazon Elastic MapReduce, я успешно нашел способ обновить образ EMR numpy и scipy.

При запуске из консоли работают следующие команды:

    tar -cvf py_bundle.tar mymain.py Utils.py numpy-1.6.1.tar.gz scipy-0.9.0.tar.gz

    gzip py_bundle.tar 

    python my_mapper.py -r emr --python-archive py_bundle.tar.gz --bootstrap-python-package numpy-1.6.1.tar.gz --bootstrap-python-package scipy-0.9.0.tar.gz > output.txt 

Это успешно загружает последние изображения и скеппи в изображение и отлично работает.Мой вопрос - это вопрос скорости.Это займет 21 минуту, чтобы установить себя на маленьком экземпляре.

Кто-нибудь знает, как ускорить процесс обновления numpy и scipy?

Ответы [ 2 ]

5 голосов
/ 07 июня 2012

Единственный способ сделать что-либо для образа EMR - использовать действия начальной загрузки.Выполнение этого из консоли означает, что вы будете менять только главный узел, а не узлы задач, которые выполняют обработку.Действия начальной загрузки запускаются один раз при запуске на всех узлах и могут быть простым сценарием, который получает shell exec'd.

elastic-mapreduce --create --bootstrap-action "s3://bucket/path/to/script" ...

Чтобы ускорить изменения в образе EMR, скопируйте файлы после установки и загрузите вS3.Затем используйте загрузочное действие для загрузки и развертывания.Вам придется хранить отдельные архивы для 32-битных (микро, малых, средних) и 64-битных машин.

Команда для загрузки из S3 в сценарии:

hadoop fs -get s3://bucket/path/to/archive /tmp/archive
2 голосов
/ 01 апреля 2015

Текущий ответ на этот вопрос заключается в том, что NumPy уже установлен в EMR.

Если вы хотите обновить NumPy до более новой версии, чем та, которая доступна, вы можете запустить скрипт (какдействие начальной загрузки), которое делает sudo yum -y install numpy.Затем NumPy устанавливается в кратчайшие сроки.

...