là, La valeur de "spark.yarn.executor.memoryOverhead" dans le travail d'allumage est le fil devant être attribué à l'application ou juste la valeur maximale?
spark.yarn.executor.memoryOverhead
N’est que la valeur maximale. L’objectif est de calculer OVERHEAD en tant que pourcentage de la mémoire réelle de l’exécuteur, utilisée par les RDD et les DataFrames
--executor-memory/spark.executor.memory
contrôle la taille du tas de l'exécuteur, mais les machines virtuelles peuvent également utiliser une partie de la mémoire hors tas, par exemple pour les chaînes internes et les tampons d'octets directs.
La valeur de spark.yarn.executor.memoryOverhead
property est ajoutée à la mémoire de l'exécuteur afin de déterminer la demande de mémoire complète adressée à YARN pour chaque exécuteur. La valeur par défaut est max (executorMemory * 0.10, avec un minimum de 384).
Les exécuteurs utiliseront une allocation de mémoire basée sur la propriété de spark.executor.memory
plus un temps système défini par spark.yarn.executor.memoryOverhead
Vous trouverez une description détaillée de la disposition de la mémoire de l'exécuteur d'étincelles avec fil ici