2014-04-19 40 views
5

需要在amazon EMR bootstrap动作上安装一些软件包和二进制文件,但我找不到任何使用它的示例。如何在代码中的amazon EMR bootstrap动作上安装自定义包?

基本上,我想安装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包?

+0

听说过“boto”吗? – emeth

+0

是的,这就是我从 – KJW

回答

6

有一个类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的另一个版本,那么是的,这将节省时间在同一台计算机上进行预编译,tar,将其放入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实例从博托内部旋转,这样引导只会在你的会话中第一次出现。在注销之前请注意关闭它们,以免让帐单感到意外。

+0

获得示例代码的地方,特别是sudo apt-get命令帮助我手动完成。 –

相关问题