2014-04-19 11 views
5

necessario installare alcuni pacchetti e binari sull'azione bootstrap EMR amazon ma non riesco a trovare alcun esempio che usi questo.come installare i pacchetti personalizzati sull'azione bootstrap EMR di Amazon nel codice?

Fondamentalmente, voglio installare il pacchetto python e specificare ciascun nodo hadoop per utilizzare questo pacchetto per l'elaborazione degli elementi nel bucket s3, ecco un esempio di bollo frpm.

     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' 

ho bisogno di farlo usare il pacchetto python simplecv, ma non è sicuro dove specificare questo. Cosa succede se non è installato, come posso installarlo? C'è un modo per evitare di aspettare il completamento dell'installazione, è possibile installarlo da qualche parte e basta fare riferimento al pacchetto python?

+0

Hai sentito "boto'? – emeth

+0

sì, ecco dove ho ottenuto il codice di esempio da – KJW

risposta

6

Esiste una classe boto.emr.bootstrap_action.BootstrapAction per l'azione di avvio.

Definirlo come il seguente. La maggior parte del codice proviene da 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]) 

ed è necessario definire l'azione di bootstrap. Se hai bisogno di un'altra versione di Python allora sì, farebbe risparmiare tempo per precompilarlo sullo stesso computer, tararlo, metterlo in un bucket S3 e quindi decomprimerlo durante il bootstrap.

#!/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 

penso che si può lasciare le istanze EMR filatura dall'interno boto in modo che il bootstrap si verifica solo la prima volta nella sessione. Basta fare attenzione a spegnerli prima di disconnettersi in modo da non avere una sorpresa sul conto.

+0

, in particolare i comandi sudo apt-get mi hanno aiutato a farlo manualmente. –

Problemi correlati