2014-04-19 2 views
5

besoin d'installer des paquets et des binaires sur l'action amazon EMR bootstrap mais je ne trouve aucun exemple qui l'utilise.comment installer des paquets personnalisés sur amazon EMR bootstrap action dans le code?

Fondamentalement, je veux installer le paquet python, et spécifier chaque nœud hadoop pour utiliser ce paquet pour le traitement des éléments dans seau s3, voici un exemple frpm boto. Je dois lui faire utiliser le paquet SimpleCV python, mais je ne sais pas où le spécifier. Que faire si ce n'est pas installé, comment puis-je le faire installer? Existe-t-il un moyen d'éviter d'attendre la fin de l'installation, est-il possible de l'installer quelque part et de simplement référencer le paquet python?

+0

Avez-vous entendu 'boto'? – emeth

+0

oui c'est là que j'ai eu l'exemple de code de – KJW

Répondre

6

Il existe une classe boto.emr.bootstrap_action.BootstrapAction pour l'action d'amorçage.

Définissez-le comme ci-dessous. La majeure partie du code provient du 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]) 

Et vous devez définir l'action d'amorçage. Si vous avez besoin d'une autre version de Python alors oui, cela vous ferait gagner du temps pour le précompiler sur le même ordinateur, le goupir, le mettre dans un compartiment S3, puis le décompresser pendant le 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 

Je pense que vous pouvez laisser les instances de DME filature à l'intérieur Boto afin que le bootstrap ne se produit que la première fois dans votre session. Faites juste attention à les fermer avant de vous déconnecter afin de ne pas avoir de surprise sur votre facture.

+0

particulièrement les commandes sudo apt-get m'ont aidé à le faire manuellement. –

Questions connexes