2014-04-19 3 views
5

müssen einige Pakete und Binärdateien auf der Amazon EMR Bootstrap-Aktion installieren, aber ich kann kein Beispiel finden, das dies verwendet.Wie installiert man benutzerdefinierte Pakete auf Amazon EMR Bootstrap-Aktion im Code?

Grundsätzlich möchte ich Python-Paket installieren, und jeden Hadoop-Knoten angeben, um dieses Paket für die Verarbeitung der Elemente in S3 Eimer zu verwenden, hier ist ein Beispiel frpm Boto.

Ich muss es das SimpleCV Python-Paket verwenden, aber nicht sicher, wo Sie dies angeben. Was ist, wenn es nicht installiert ist, wie installiere ich es? Gibt es eine Möglichkeit zu vermeiden, auf die Installation zu warten, ist es möglich, sie irgendwo zu installieren und nur auf das Python-Paket zu verweisen?

+0

Haben Sie 'Boto' gehört? – emeth

+0

Ja, das ist, wo ich den Beispielcode von – KJW

Antwort

6

Es gibt eine Klasse boto.emr.bootstrap_action.BootstrapAction für die Bootstrap-Aktion.

Definieren Sie es wie folgt. Der Großteil des Codes stammt aus der 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]) 

Und Sie müssen die Bootstrap-Aktion definieren. Wenn Sie eine andere Version von Python benötigen, dann würde es Zeit sparen, es auf dem gleichen Computer zu kompilieren, es zu tarieren, es in einen S3-Bucket zu legen und es dann während des Bootstraps zu entpacken.

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

Ich glaube, Sie EMR Instanzen Spinnen aus Boto verlassen können, so dass die Bootstrap nur das erste Mal in der Sitzung stattfinden. Seien Sie vorsichtig, bevor Sie sich abmelden, damit Sie keine Überraschung auf Ihrer Rechnung bekommen.

+0

bekam, besonders die sudo apt-get-Befehle halfen mir, es manuell zu machen. –

Verwandte Themen