web-dev-qa-db-fra.com

Spark Mémoire du pilote et mémoire du maître d'application

Suis-je en train de comprendre correctement la documentation du mode client?

  1. le mode client est opposé au mode cluster où le pilote s'exécute dans le maître d'application?
  2. 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?
  3. En mode client, la mémoire du pilote n'est-elle pas incluse dans le paramètre de mémoire principale de l'application?
13
user782220

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

  • Mode client , le pilote s'exécutera sur la machine sur laquelle l'application a été soumise et la machine doit être disponible sur le réseau jusqu'à la fin de l'application.
  • Mode cluster , le pilote s'exécutera dans le noeud maître d'application (un par noeud spark application) et la machine soumettant le besoin d'application ne pas être en réseau après soumission

Mode client

Client mode

Mode cluster

Cluster mode

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 de spark.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, utilisez spark.driver.memory au lieu. Utilisez des suffixes en minuscules, par exemple k, m, g, t et p, pour kibi-, mebi-, gibi-, tebi- et pebibytes, respectivement.

Vérifiez plus d'informations sur ces propriétés ici

10
mrsrinivas

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/

3
Ravikumar