2017-04-17 1 views
-1

Je suis nouveau à étinceler et aimerais savoir combien de cœurs et d'exécuteurs doivent être utilisés dans un étincelle et AWS si nous avons 2 esclaves c4.8xlarge et 1 c4.8x grand nœud maître . J'ai essayé différentes combinaisons mais je n'arrive pas à comprendre le concept.Nombre d'exécuteurs et de cœurs

Merci.

+0

son tout dépend de votre volume de données et les ressources disponibles. – BDR

+0

En supposant que j'ai toutes les ressources disponibles, que devrais-je définir mon nombre d'exécuteurs et de coeurs? – Bharath

+0

Quelle ressource utilisez-vous? Spark standalone ou fil ou mesos ?? – BDR

Répondre

1

gars Cloudera ont donné une bonne explication sur cette

https://www.youtube.com/watch?v=vfiJQ7wg81Y

Si, disons que vous avez 16 cœurs sur votre noeud (je pense que c'est exactement votre cas), vous donnez 1 pour le fil pour gérer cette nœud, alors vous dividez 15 à 3, donc chaque exécuteur a 5 cœurs. De plus, vous avez un préfixe Java qui est Max (384M, 0.07 * spark.executor.memory). Donc, si vous avez 3 exécuteurs par nœud, alors vous avez un surcoût de 3 * Max (384M, 0.07 * spark.executor.memory) pour les JVM, le reste peut être utilisé pour les conteneurs de mémoire. enter image description here

Cependant, sur un cluster avec de nombreux utilisateurs travaillant simultanément, le fil peut pousser votre session d'allumage de certains conteneurs, ce qui étincelle aller tout le chemin du retour à travers le DAG et apportant toutes les RDD à l'état actuel, ce qui est mal. C'est pourquoi vous devez réduire légèrement les --num-executors, --executor-memory et --executor-cores pour donner de l'espace aux autres utilisateurs à l'avance. Mais cela ne s'applique pas à AWS où vous êtes le seul utilisateur.

--executor mémoire 18Gb devrait fonctionner pour vous BTW

Plus de détails sur transformer votre paramètres groupe http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/

+0

Merci Sergio. Je vais essayer ça. – Bharath