Je souhaite modifier la configuration de Spark dans mon espace de travail Amazon EMR Studio.
Brève description
Pour personnaliser votre configuration Spark pour les clusters distants Amazon Elastic Compute Cloud (Amazon EC2) ou EMR sans serveur, utilisez les commandes Sparkmagic pour modifier executorMemory, executorCores et l'allocation des ressources.
Pour les clusters distants Amazon Elastic Kubernetes Service (Amazon EKS), définissez la configuration Spark dans l'objet SparkContext. Amazon EKS ne prend pas en charge les commandes Sparkmagic. Pour plus d'informations, consultez la section Considérations et limites.
Résolution
Personnalisez la configuration de Spark pour les clusters distants Amazon EC2 ou EMR sans serveur
Procédez comme suit :
-
Pour modifier la configuration de la tâche, exécutez la commande %%configure dans la cellule Workspace.
Exemple :
%%configure -f
{"executorMemory":"4G"}
Remarque : dans l'exemple précédent, executorMemory est modifié pour la tâche Spark.
-
Pour les configurations supplémentaires que vous transmettez avec l'option -conf, utilisez un objet JSON imbriqué.
Remarque : Pour transmettre un objet à un SparkContext ou à une Sparksession, utilisez -conf au lieu de conf. Pour plus d'informations, consultez la section Configuration de Spark sur le site Web d'Apache Livy.
-
Exemple :
%%configure -f
{
"driverMemory": "4G",
"driverCores": 4,
"executorMemory" : "8G",
"executorCores": 2,
"conf": {
"spark.dynamicAllocation.maxExecutors" : 10,
"spark.dynamicAllocation.minExecutors": 1
}
}
Pour personnaliser la configuration de Spark dans un espace de travail connecté à un cluster Amazon EKS, définissez la configuration de Spark dans l'objet SparkContext :
spark.conf.set("spark.executor.memory", "8g")
Confirmer la configuration de Spark
Effectuez les opérations suivantes :
-
Pour Amazon EC2 et EMR sans serveur, exécutez la commande %%info sur l'espace de travail côté client :
Exemple de sortie :
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'}
-
Pour Amazon EC2, consultez les journaux sur /var/log/livy/livy-livy-server.out sur le nœud primaire du cluster. Si une session Spark a démarré, une entrée de journal similaire à la suivante s'affiche :
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]]
-
Pour Amazon EKS, utilisez l'interface utilisateur Spark.
Informations connexes
Noyaux améliorés avec commandes magiques
API REST sur le site web d'Apache Livy
Fonctionnalités disponibles avec les nouveaux noyaux sur le site web GitHub