Que se passe-t-il lorsque le nombre de tâches d'étincelles soit plus grand que le noyau exécuteur? Comment ce scénario est-il traité par Spark P>
3 Réponses :
Je pense que la question est un peu éteinte. Il est peu probable que ce que vous demandez. Pourquoi? P>
Il est plus probable que vous n'ayez pas de groupe de 10 000 noyaux exécutants au plus de lieux (pour votre application), mais il y a des sites qui ont cela, c'est vrai. P> li>
Si vous avez plus de noyaux alloués que nécessaire, ils restent inactifs et non utilisables pour les autres. Mais avec une allocation de ressources dynamique, les exécuteurs peuvent être abandonnés. J'ai travaillé avec le fil et l'étincelle autonome, comment c'est avec K8, je ne suis pas sûr. p> li>
Les transformations modifient ce dont vous avez besoin en termes de ressources. Par exemple. une commande par peut entraîner moins de partitions et peut donc contribuer à l'oisiveté. P> li> ul>
Oui, ce scénario peut arriver. Dans ce cas, certains cœurs seront inactifs. Scénarios où cela peut arriver: p>
coalesce code> ou repartition code> avec un certain nombre de partitions
- Vous utilisez le nombre par défaut de
spartik.sql.shuffle.partitions code> (= 200)
Et vous avez plus de 200 cœurs disponibles. Ce sera un problème pour
Joignons, tri et agrégation. Dans ce cas, vous voudrez peut-être augmenter spartik.sql.shuffle.partitions code> li>
ul>
Notez que même si vous avez suffisamment de tâches, certaines (ou la plupart) d'entre eux pourraient être vides. Cela peut se produire si vous avez une grosse données de données ou que vous faites quelque chose comme groupby () code> ou ou sans une partition code>. Dans ce cas, les partitions vides seront terminées immédiatement, tournant la plupart de vos noyaux inactifs p>
est-ce lié à Cette question? P>
Quoi qu'il en soit, vous pouvez vérifier cela Cloudera Comment . Dans la section "Allocation de ressources de réglage", il est expliqué qu'une application d'étincelle peut demander aux exécuteurs en allumant la propriété d'allocation dynamique. Il est également important de définir des propriétés de cluster tels que Num-Exécuteurs, Executor-Cooks, la mémoire exécutante ... de sorte que Spark demande s'intégrer à ce que votre gestionnaire de ressources est disponible. P>
Nombre de noyaux exécutants?
Je demande à propos d'un scénario était le numéro de Core exécutant> Nombre total de tâches
Je vais ajouter du nombre de.
Pouvez-vous accepter une réponse selon le protocole sur ce site Pls?