python - 如何在代码中的亚马逊 EMR 引导操作上安装自定义包?

标签 python boto amazon-emr

需要在亚马逊 EMR 引导操作上安装一些包和二进制文件,但我找不到任何使用它的示例。

基本上,我想安装 python 包,并指定每个 hadoop 节点使用这个包来处理 s3 存储桶中的项目,这里是一个示例 frpm boto。

                      name='Image to grayscale using SimpleCV python package',
                      mapper='s3n://elasticmapreduce/samples/imageGrayScale.py',
                      reducer='aggregate',
                      input='s3n://elasticmapreduce/samples/input',
                      output='s3n://<my output bucket>/output'

我需要让它使用 SimpleCV python 包,但不确定在哪里指定它。如果未安装怎么办,如何安装?有没有办法避免等待安装完成,是否可以在某个地方安装它并只引用python包?

最佳答案

有一个 boto.emr.bootstrap_action.BootstrapAction 类用于引导操作。

定义如下。大部分代码来自 boto example page .

import boto.emr
from boto.emr.bootstrap_action import BootstrapAction

action = BootstrapAction(name="Bootstrap to add SimpleCV",
                         path="s3n://<my bucket uri>/bootstrap-simplecv.sh")

conn = boto.emr.connect_to_region('us-west-2')
jobid = conn.run_jobflow(name='My jobflow',
                         log_uri='s3://<my log uri>/jobflow_logs',
                         steps=[step],  # step defined elsewhere
                         bootstrap_actions=[action])

并且您需要定义引导操作。如果您需要另一个版本的 Python,那么是的,在完全相同的计算机上预编译它会节省时间,将其压缩,将其放入 S3 存储桶中,然后在引导过程中解压缩。

#!/bin/sh
# filename: bootstrap-simplecv.sh  (save it in an S3 bucket)
set -e -x

sudo apt-get install python-setuptools
sudo easy_install pip 
sudo pip install -U SimpleCV

我认为您可以让 EMR 实例在 boto 中旋转,这样 Bootstrap 只会在您的 session 中第一次出现。在您注销之前请小心关闭它们,以免您的账单出现意外。

关于python - 如何在代码中的亚马逊 EMR 引导操作上安装自定义包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23168663/

相关文章:

java - RDS 到 S3 - 数据转换 AWS

hadoop - 星火 2.2.0 FileOutputCommitter

python - 使用 matplotlib 显示灰度 OpenCV 图像

Django + S3 (boto) + Sorl 缩略图 : Suggestions for optimisation

python - 如何在virtualenv中安装哪些程序需要 "sudo"?

python - 如何测试依赖于 boto 和 Amazon AWS 服务的模块?

python - AWS Boto 连接仅适用于 Windows Python shell

apache-spark - 问题 找不到 s3ablock-0001- 的任何有效本地目录

python - Django 自定义字段 - 从 to_python 方法获取模型字段

python - 绕自己的轴旋转物体?