So starten und konfigurieren einer EMR-cluster mit boto
Ich versuche zu starten, einen cluster und einen job ausführen alle mit boto.
Ich finde viele Beispiele für das erstellen job_flows. Aber ich kann nicht für das Leben von mir, finden Sie ein Beispiel, das zeigt:
- Wie definieren die cluster verwendet werden (durch clusted_id)
- Wie Sie ein starten Sie ein cluster (zum Beispiel, Wenn ich will, um die Verwendung von spot-instances für einige task-Knoten)
Bin ich etwas fehlt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Boto und die zugrunde liegenden EMR-API ist derzeit Vermischung der Begriffe cluster und auftragsablauf, und auftragsablauf wird veraltet. Ich halte Sie Synonyme.
Sie einen neuen cluster erstellen, durch aufrufen der
boto.emr.connection.run_jobflow()
Funktion. Es wird wieder die cluster-ID, die EMR für Sie generiert.Zunächst alle obligatorischen Dinge:
Dann geben wir Instanz-Gruppen, einschließlich der spot-Preis wollen wir zahlen für die TASK-Knoten:
Endlich starten wir einen neuen cluster:
Wir können auch drucken Sie die cluster-ID ist es uns wichtig, dass:
boto3
statt boto?Glaube ich, dass der minimum-Betrag von Python gestartet wird, eine EMR-cluster mit boto3 ist:
Hinweise: Sie müssen erstellen
EMR_EC2_DefaultRole
undEMR_DefaultRole
. Die Amazon Dokumentation behauptet, dassJobFlowRole
undServiceRole
sind optional, aber unterlassen, Sie werden nicht für mich arbeiten. Das könnte sein, weil mein Subnetz ist ein VPC subnet, aber ich bin mir nicht sicher.Verwende ich den folgenden code zum erstellen EMR mit flink installiert, und umfasst 3 Instanz-Gruppen. Referenz-Dokument: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/emr.html#EMR.Client.run_job_flow
Meinem Schritt Argumente sind:
bash -c /usr/bin/flink run -m yarn-cluster -yn 2 /home/hadoop/mysflinkjob.jar
Versuch ausführen gleichen run_job_flow, aber immer Fehler:
Ausführen gleichen Befehl vom Master-Knoten arbeiten gut, aber nicht von Python boto3
Scheint, dass Problem wird durch Anführungszeichen die EMR oder boto3 fügen Sie in Streit.
UPDATE:
Split ALLE Ihre Argumente mit Leerzeichen.
Ich meine, wenn Sie ausführen müssen
"flink run myflinkjob.jar"
übergeben Sie Ihre Argumente als diese Liste: