Suis-je en train de comprendre correctement la documentation du mode client?
spark.driver.memory
+ spark.yarn.am.memory
doit être inférieur à la mémoire de la machine?le mode client est opposé au mode cluster où le pilote s'exécute dans le maître d'application?
Oui , lorsque Spark application déployée sur YARN dans
Si Spark est soumise avec mode cluster sur son propre gestionnaire de ressources (autonome), le processus du pilote se fera dans l'un des nœuds de travail.
Références pour les images et le contenu:
En mode client, le pilote et le maître d'application sont des processus distincts et donc
spark.driver.memory
+spark.yarn.am.memory
doit être inférieur à la mémoire de la machine?
Non , En mode client , le pilote et AM sont des processus séparés et existe dans différentes machines , donc la mémoire n'a pas besoin d'être combinée mais spark.yarn.am.memory
+ some overhead
doit être inférieur à la mémoire du conteneur YARN (yarn.nodemanager.resource.memory-mb
). S'il dépasse le gestionnaire de ressources de YARN, le conteneur sera tué.
En mode client, la mémoire du pilote n'est-elle pas incluse dans le paramètre de mémoire principale de l'application?
Ici spark.driver.memory
doit être inférieure à la mémoire disponible sur la machine à partir de laquelle l'application spark va se lancer.
Mais, En mode cluster, utilisez
spark.driver.memory
au lieu despark.yarn.am.memory
.
spark.yarn.am.memory
: 512 m (par défaut)Quantité de mémoire à utiliser pour YARN Application Master en mode client, au même format que les chaînes de mémoire JVM (par exemple
512m, 2g
). En mode cluster, utilisezspark.driver.memory
au lieu. Utilisez des suffixes en minuscules, par exemplek, m, g, t
etp
, pour kibi-, mebi-, gibi-, tebi- et pebibytes, respectivement.
En mode client, le pilote est lancé directement dans le programme client spark-submit. Le maître d'application à créer dans l'un des nœuds du cluster. Le spark.driver.memory (+ surcharge de mémoire) doit être inférieur à la mémoire de la machine.
En mode cluster, le pilote s'exécute à l'intérieur du maître d'application dans l'un des nœuds du cluster.
https://blog.cloudera.com/blog/2014/05/Apache-spark-resource-management-and-yarn-app-models/