Comment modifier la configuration de Spark dans un bloc-notes Amazon EMR ?

Date de la dernière mise à jour : 24/06/2020

Comment personnaliser la configuration d'une tâche Apache Spark dans un bloc-notes Amazon EMR ?

Brève description

Un bloc-notes Amazon EMR est un bloc-notes Jupyter sans serveur. Un bloc-notes Jupyter utilise le noyau Sparkmagic comme client pour travailler de manière interactive avec Spark dans un cluster EMR distant via un serveur Apache Livy. Vous pouvez utiliser les commandes Sparkmagic pour personnaliser la configuration de Spark. Une configuration personnalisée est utile lorsque vous souhaitez :

  • modifier la mémoire du programme d'exécution et les cœurs d'exécution pour une tâche Spark ;
  • modifier l'allocation des ressources pour Spark.

Solution

Modifiez la séance en cours

1.    Dans une cellule de bloc-notes Jupyter, exécutez la commande %%configure pour modifier la configuration de la tâche. Dans l'exemple suivant, la commande modifie la mémoire du programme d'exécution pour la tâche Spark.

%%configure -f
{"executorMemory":"4G"}

2.    Pour les configurations supplémentaires que vous transmettez généralement avec l'option --conf, utilisez un objet JSON imbriqué, comme illustré dans l'exemple suivant. Utilisez cette méthode au lieu de transmettre explicitement un objet conf à un SparkContext ou SparkSession.

%%configure -f
{"conf":{"spark.dynamicAllocation.enabled":"false"}}

Confirmez la réussite de la modification de la configuration

1.    Côté client, exécutez la commande %%info sur Jupyter pour afficher la configuration de la séance actuelle. Exemple de résultat :

Current session configs: {'executorMemory': '4G', 'conf': {'spark.dynamicAllocation.enabled': 'false'}, 'kind': 'pyspark'}

2.     Côté serveur, vérifiez le journal /var/log/livy/livy-livy-server.out sur le cluster EMR. Si une SparkSession a démarré, vous devriez voir une entrée de journal semblable à celle-ci :

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]]

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?