Ich möchte die Spark-Konfiguration in meinem Amazon EMR Studio-Workspace ändern.
Kurzbeschreibung
Um deine Spark-Konfiguration für Amazon Elastic Compute Cloud (Amazon EC2) oder Remote-Cluster von EMR Serverless anzupassen, verwende Sparkmagic-Befehle, um executorMemory, executorCores und die Ressourcenzuweisung zu ändern.
Setze für Remote-Cluster in Amazon Elastic Kubernetes Service (Amazon EKS) die Spark-Konfiguration im SparkContext-Objekt. Amazon EKS unterstützt keine Sparkmagic-Befehle. Weitere Informationen findest du unter Überlegungen und Einschränkungen.
Lösung
Die Spark-Konfiguration für Amazon EC2 oder Remote-Cluster von EMR Serverless anpassen
Führe die folgenden Schritte aus:
-
Um die Auftragskonfiguration zu ändern, führe den Befehl %%configure in der Workspace-Zelle aus.
Beispiel:
%%configure -f
{"executorMemory":"4G"}
Hinweis: Im vorherigen Beispiel wird executorMemory für den Spark-Auftrag geändert.
-
Verwende für zusätzliche Konfigurationen, die du mit der Option -conf übergibst, ein verschachteltes JSON-Objekt.
Hinweis: Um ein Objekt an ein SparkContext oder eine Sparksession zu übergeben, verwende -conf anstelle von conf. Weitere Informationen findest du unter Spark configuration (Spark-Konfiguration) auf der Apache Livy-Website.
-
Beispiel:
%%configure -f
{
"driverMemory": "4G",
"driverCores": 4,
"executorMemory" : "8G",
"executorCores": 2,
"conf": {
"spark.dynamicAllocation.maxExecutors" : 10,
"spark.dynamicAllocation.minExecutors": 1
}
}
Um die Spark-Konfiguration in einem Workspace anzupassen, der mit einem Amazon EKS-Cluster verbunden ist, lege die Spark-Konfiguration im Objekt SparkContext fest:
spark.conf.set("spark.executor.memory", "8g")
Die Spark-Konfiguration bestätigen
Ergreife die folgenden Maßnahmen:
-
Führe für Amazon EC2 und EMR Serverless den Befehl %%info im clientseitigen Workspace aus:
Beispielausgabe:
Current session configs: {'driverMemory': '4G', 'driverCores': 4, 'executorMemory': '8G', 'executorCores': 2, 'conf': {'spark.dynamicAllocation.maxExecutors': 10, 'spark.dynamicAllocation.minExecutors': 1}, 'proxyUser': 'assumed-role_Admin_biditdas-Isengard', 'kind': 'pyspark'}
-
Überprüfe für Amazon EC2 die Protokolle unter /var/log/livy/livy-livy-server.out im Primärknoten des Clusters. Wenn eine Spark-Sitzung gestartet wurde, siehst du einen Protokolleintrag, der dem folgenden ähnelt:
20/06/24 10:11:22 INFO InteractiveSession$: Creating Interactive session 2: [owner: null, request: [kind: pyspark, proxyUser: None, executorMemory: 4G, conf: spark.dynamicAllocation.enabled -> false, heartbeatTimeoutInSecond: 0]]
-
Verwende für Amazon EKS die Spark-Benutzeroberfläche.
Weitere Informationen
Verbessern Sie Kernel mit Magie Befehle in EMR Studio
REST API (REST-API) auf der Apache Livy-Website
In den neuen Kernels verfügbare Funktionen auf der GitHub-Website