2017-07-22 2 views
2

J'essaie de lancer une étincelle en mode autonome dans mon système. La spécification actuelle de mon système est 8 cœurs et 32 ​​Go de mémoire. Base sur this article je calcule les configurations d'allumage comme suit:Parallélisme Spark en mode autonome

spark.driver.memory 2g 
spark.executor.cores 3 
spark.executor.instances 2 
spark.executor.memory 20g 
maximizeResourceAllocation TRUE 

J'ai créé le contexte d'étincelle dans mon carnet de jupyter comme ça et vérifiais le niveau de parallélisme, par ce

sc = SparkContext() 
sc.defaultParallelism 

Le parallélisme par défaut donne moi 8. Ma question est pourquoi il me donne 8 même si j'ai mentionné 2 noyaux? Si cela ne me donne pas le parallélisme réel de mon système, alors comment obtenir le niveau actuel de parallélisme?

Merci!

Répondre

2
sc.defaultParallelism 

renvoie le niveau de parallélisme par défaut défini sur SparkContext. Par défaut, il s'agit du nombre de cœurs disponibles pour l'application.

mais de savoir ce que sont le cadre pré-appliqué pour le livre de note jupyter, vous pouvez imprimer

sc._conf.getAll() 

de scala sc.getConf.getAll.foreach(println)

qui aurait la propriété

spark.default.parallelism

Je pense que dans ce cas son preset c'est pourquoi vous obtenez 8 dans votre cas.

+0

Merci pour votre réponse. Et c'est très utile. Oui, je pourrais imprimer tous mes conf. Et dans l'impression, j'obtenais la même configuration que celle mentionnée dans le fichier config.default. Mais ma question était si je mentionne mes exécuteurs d'être 2 et les noyaux 3, alors encore pourquoi il montre défaut 8? Ne devrait-il pas être par défaut 3? Ou y a-t-il une différence entre le noyau de l'exécuteur et le noyau par défaut pour le parallélisme? Merci! – Beta

+0

Oui. par défaut, c'est le nombre de cœurs disponibles pour l'application. C'est 3. mais dans votre cas 'spark.default.parallelism' a été mis à 8 par défaut c'est pourquoi vous obtenez 8. peut être jupyter début de la session, il a été mis –

+0

Merci pour la clarification. Je l'ai déjà upvoted. Je l'accepterai comme réponse :) – Beta