Wie lege ich Spark-Parameter in Amazon EMR fest?
Ich möchte Apache-Spark-Parameter in Amazon EMR konfigurieren.
Kurzbeschreibung
Verwende Befehlszeilenargumente wie spark-submit, um Spark-Anwendungen zu konfigurieren. Oder konfiguriere die Werte in der Datei spark-defaults.conf, um die Änderungen dauerhaft zu machen.
Lösung
Verwenden von spark-submit, um Spark-Parameter zu konfigurieren
Verwende eine der folgenden Optionen, um Konfigurationen dynamisch über die Spark-Shell und mit dem Befehl spark-submit zu laden:
- Befehlszeilenoptionen wie --num-executors.
- Das --conf-Flag.
Hinweis: Um die vollständige Optionsliste anzuzeigen, führe spark-submit--help aus.
Der Befehl spark-submit liest die Konfigurationsoptionen aus spark-defaults.conf.
In der Datei spark-defaults.conf enthält jede Zeile einen Schlüssel und einen Wert, getrennt durch Leerzeichen.
Weitere Informationen findest du unter Absenden von Benutzeranwendungen mit spark-submit. Weitere Informationen zu den von Spark unterstützten Parametern findest du unter Spark configuration (Spark-Konfiguration) auf der Apache Spark-Website.
Beispiele für Konfigurationsoptionen:
--class \ --master \ --deploy-mode \ --conf = \ --num-executors \ --executor-memory G \ --driver-memory G \ --executor-cores \ --driver-cores \ --jars \ --packages \ --py-files < Comma-separated list of .zip, .egg, or .py files to place on the PYTHONPATH for Python apps> \
Der Befehl spark-submit überträgt automatisch die Anwendungs-JAR und alle JARs, die in der Option --jars enthalten sind, an den Cluster. Du musst die nach --jars angegebenen URLs durch Kommas trennen. spark-submit nimmt die Liste in die Treiber- und Executor-Klassenpfade auf und kopiert die JARs und Dateien für jeden SparkContext auf den Executor-Knoten in das Arbeitsverzeichnis.
Hinweis: Die Verzeichniserweiterung funktioniert nicht mit --jars.
Beispiel für einen spark-submit-Befehl:
spark-submit \ --deploy-mode cluster \ --class org.apache.spark.examples.SparkPi \ --conf spark.dynamicAllocation.enabled=false \ --master yarn \ --num-executors 4 \ --driver-memory 4G \ --executor-memory 4G \ --executor-cores 1 \ /usr/lib/spark/examples/jars/spark-examples.jar \ 10
Verwende das Flag --conf, um die Speicherparameter weiterzugeben:
spark-submit \ --deploy-mode cluster \ --class org.apache.spark.examples.SparkPi \ --conf spark.dynamicAllocation.enabled=false \ --master yarn \ --conf spark.driver.memory=1G \ --conf spark.executor.memory=1G \ /usr/lib/spark/examples/jars/spark-examples.jar \ 10
Verwenden von Spark-Parametern, um Spark-Shell und Pyspark-Shell zu starten
Führe die folgenden Befehle aus, um Spark-Shell oder Pyspark-Shell zu starten:
spark-shell
spark-shell \ --conf spark.driver.maxResultSize=1G \ --conf spark.driver.memory=1G \ --deploy-mode client \ --conf spark.executor.memory=1G \ --conf spark.executor.heartbeatInterval=10000000s \ --conf spark.network.timeout=10000001s \ --executor-cores 1 \ --num-executors 5 \ --packages org.apache.spark:spark-avro_2.12:3.1.2 \ --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'
pyspark shell
pyspark \ --conf spark.driver.maxResultSize=1G \ --conf spark.driver.memory=1G \ --deploy-mode client \ --conf spark.executor.memory=1G \ --conf spark.executor.heartbeatInterval=10000000s \ --conf spark.network.timeout=10000001s \ --executor-cores 1 \ --num-executors 5 \ --packages org.apache.spark:spark-avro_2.12:3.1.2 \ --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'
Verwenden von spark-defaults.conf, um Spark-Parameter zu konfigurieren
Um die Konfigurationsänderungen dauerhaft zu machen, hänge die Konfiguration an die Datei /etc/spark/conf/spark-defaults.conf an. Starte dann den Spark-Verlaufsserver neu. Das folgende Beispiel konfiguriert den Executor-Speicher und den Treiberspeicher in spark-defaults.conf. In diesem Beispiel besteht jede Zeile aus einem Schlüssel und einem Wert, die durch Leerzeichen getrennt sind.
Beispiel
spark.executor.memory 9486M spark.driver.memory 9486M
Die folgende Beispielkonfiguration konfiguriert den Spark-Treiber und den Executor-Speicher während des Clusterstarts:
[ { "Classification": "spark-defaults", "Properties": { "spark.executor.memory": "9486M", "spark.driver.memory": "9486M" } } ]
Hinweis: Auf Amazon EMR hat die spark.yarn.executor.memoryOverhead-Konfiguration einen Standardwert von 18,75 %, der standardmäßige Spark-Standardwert ist jedoch 0,1875 %. Sobald du den Spark-Auftrag konfiguriert hast, überwache dessen Leistung und analysiere die Ressourcenauslastung, um Erkenntnisse zu gewinnen und die Auftragsparameter weiter zu optimieren.
Ähnliche Informationen
Einen Spark-Schritt hinzufügen
Den Cluster im Handumdrehen mit der Amazon-EMR-Neukonfiguration ändern
- Themen
- Analytics
- Tags
- Amazon EMR
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 2 Jahren
AWS OFFICIALAktualisiert vor einem Jahr