Ich möchte etwas wirklich einfaches tun, einfach einen Spark-Cluster über die EMR-Konsole starten und ein Spark-Skript ausführen, das von einem Python-Paket abhängt (z. B. Arrow). Was ist der einfachste Weg, dies zu tun?Wie startet man die Installation von Python-Modulen auf Amazon EMR?
Antwort
Der einfachste Weg wäre, ein Bash-Skript mit Ihren Installationsbefehlen zu erstellen, es in S3 zu kopieren und eine Bootstrap-Aktion von der Konsole aus auf Ihr Skript zu setzen.
Hier ist ein Beispiel, das ich in der Produktion bin:
s3: //mybucket/bootstrap/install_python_modules.sh
#!/bin/bash -xe
# Non-standard and non-Amazon Machine Image Python modules:
sudo pip install -U \
awscli \
boto \
ciso8601 \
ujson \
workalendar
sudo yum install -y python-psycopg2
Kurz gesagt, gibt es zwei Möglichkeiten, Pakete mit Pip zu installieren, abhängig von der Plattform. Zuerst installieren Sie, was Sie brauchen, und dann können Sie Ihren Spark-Schritt ausführen. Am einfachsten ist es emr-4.0.0 und ‚Befehl runner.jar‘ zu verwenden:
from boto.emr.step import JarStep
>>> pip_step=JarStep(name="Command Runner",
... jar="command-runner.jar",
... action_on_failure="CONTINUE",
... step_args=['sudo','pip','install','arrow']
...)
>>> spark_step=JarStep(name="Spark with Command Runner",
... jar="command-runner.jar",
... step_args=["spark-submit","/usr/lib/spark/examples/src/main/python/pi.py"]
... action_on_failure="CONTINUE"
)
>>> step_list=conn.add_jobflow_steps(emr.jobflowid, [pip_step,spark_step])
auf 2.x und 3.x, verwenden Sie Skript-runner.jar in ähnlicher Weise, außer, dass Sie um den vollständigen URI für scriptrunner anzugeben.
EDIT: Sorry, ich habe nicht gesehen, dass Sie dies über die Konsole tun wollten. Sie können die gleichen Schritte auch in der Konsole hinzufügen. Der erste Schritt wäre eine Kunden-JAR mit den gleichen Argumenten wie oben. Der zweite Schritt ist ein Funkensprung. Hoffe das hilft!
wo kommt 'dieses conn' kommen aus –
- 1. wie startet man emr cluster auf amazon?
- 2. Amazon EC2 vs. Amazon EMR
- 3. Wie installiert man benutzerdefinierte Pakete auf Amazon EMR Bootstrap-Aktion im Code?
- 4. Installation von g ++ 5 auf Amazon Linux
- 5. Ermöglicht Amazon EC2 die Installation von Tools?
- 6. Running Pig on Tez auf Amazon EMR-4
- 7. Bootstrapping Abhängigkeiten auf Amazon EMR mit Python Mrjob
- 8. Ausführen von Amazon EMR mit einem benutzerdefinierten AMI?
- 9. Unterstützung für Hadoop 1.0.1 Jobs auf Amazon EMR
- 10. amazon emr spark Einreichung von S3 funktioniert nicht
- 11. Installation phpMyAdmin auf Amazon EC2-Instanz
- 12. Python Dependency Management auf EMR
- 13. Wie man Fensterdienst automatisch startet
- 14. Nach der Installation von Schienen, wie man Schienen Server auf Amazon ec2 Instanz läuft?
- 15. Amazon Linux-Stack Installation von Phusion Passenger
- 16. Wie startet man Python 2.7 von Win7 Powershell nach der Installation von 3.5?
- 17. Wie man twisted's reactor von ipython startet
- 18. Wie startet man die Aktivität von Android Home-Screen-Widget
- 19. Fehler bei der Analyse Parameter, amazon aws emr
- 20. Wie bereinigt man die Liste der terminierten AWS EMR Cluster?
- 21. Ausführen eines Skripts auf allen Knoten von Hadoop in Amazon EMR
- 22. Wie startet man das Projekt von Git?
- 23. Amazon Web Services Kinesis, EMR und S3 in der Cloud
- 24. Wie startet man die Aktivität innerhalb von Code?
- 25. XAMPP phpMyAdmin startet nicht nach der Installation
- 26. Wie installiert man Winkelmesser und startet es?
- 27. SSH-Agent startet nicht mehr nach der Installation von Cygwin
- 28. Speichern von Dateien auf EMR EC2-Instanzen
- 29. Wie verwende ich HDFS mit EMR?
- 30. Bluestacks-Installation startet nicht nach dem Extrahieren
wird installieren die Pakete auf einem der Knoten im EMR-Cluster. Wie kann ich sicherstellen, dass das Paket auf allen Knoten installiert wird? – Aliza
Dies installiert die Pakete auf allen Knoten – noli