Propriétés Spark

Vous pouvez définir des propriétés Spark lorsque vous envoyez une charge de travail Spark par lot.

Exemple :

gcloud dataproc batches submit spark
    --properties=spark.checkpoint.compress=true \\
    --region=region \\
    other args ...

Remarques :

  • Dataproc sans serveur pour Spark est compatible avec la plupart des propriétés Spark, mais il n'est pas compatible avec les propriétés Spark liées au YARN et en mode aléatoire, telles que spark.master=yarn et spark.shuffle.service.enabled. Si le code de l'application Spark définit une propriété YARN ou de brassage, l'application échoue.

  • Contrairement aux propriétés de cluster Dataproc sur Compute Engine, les propriétés de charge de travail Dataproc sans serveur pour Spark n'incluent pas de préfixe &spark.".

  • L'autoscaling de Dataproc sans serveur est contrôlé par les propriétés d'allocation de ressources de Spark.

Propriétés Spark personnalisées

Dataproc sans serveur pour Spark est compatible avec les propriétés Spark personnalisées suivantes:

Property (Propriété) Par défaut Description Exemples
spark.dataproc.driver.disk.size 100 Gio par cœur Quantité de disque à utiliser pour le nœud du pilote (processus de pilote dans lequel SparkContext est initialisé), spécifié avec un suffixe d'unité de taille (" k & & t; m, &g; g ou &t) 1024g, 2t
spark.dataproc.executor.disk.size 100 Gio par cœur Quantité de disque à utiliser pour le nœud de l'exécuteur (où s'exécute le processus d'exécuteur), spécifié avec un suffixe d'unité de taille (&&t, g, &m; &gt, g ou &t) 1024g, 2t
spark.dataproc.driverEnv.<EnvironmentVariableName> Ajoutez EnvironmentVariableName au processus du conducteur. Vous pouvez spécifier plusieurs variables d'environnement.

Propriétés d'allocation des ressources

Dataproc sans serveur utilise des propriétés Spark pour déterminer les ressources de calcul, de mémoire et de disque permettant d'allouer votre charge de travail. La valeur de ces propriétés peut avoir une incidence sur le quota consommé par votre charge de travail et vos coûts (consultez la page Quotas pour les solutions sans serveur Dataproc et tarifs de Dataproc sans serveur) pour en savoir plus.

Property (Propriété) Effet
spark.driver.cores Nombre de cœurs (vCPU) à allouer au pilote Spark. La mémoire du pilote évolue avec les cœurs de pilote dans un rapport fixe (environ 4 Go/cœur), et n'est actuellement pas contrôlable de manière indépendante. La valeur par défaut est 4. Valeurs valides: 4, 8, 16.
spark.executor.cores Nombre de cœurs (vCPU) à allouer à chaque exécuteur Spark. L'exécuteur de mémoire évolue avec les cœurs d'exécuteur à un ratio fixe (environ 4 Go/cœur) et ne peut pas être contrôlé indépendamment. La valeur par défaut est 4. Valeurs acceptées: 4, 8, 16.
spark.dataproc.driver.disk.size Quantité d'espace disque à allouer au pilote. La capacité ne doit pas être inférieure à 200 Go.
spark.dataproc.executor.disk.size Espace disque pouvant être alloué à chaque exécuteur. L'espace disque de l'exécuteur peut être utilisé pour brasser les données et entreposer des dépendances. La capacité ne doit pas être inférieure à 200 Go.
spark.executor.instances Nombre initial d'exécuteurs à allouer. Une fois que le lot commence à s'exécuter, l'autoscaling peut modifier le nombre d'exécuteurs actifs. Doit être compris entre 2 et 100.
spark.dynamicAllocation.initialExecutors Nombre initial d'exécuteurs que l'autoscaling demandera. Une fois que le lot commence à s'exécuter, l'autoscaling peut modifier le nombre d'exécuteurs actifs. Doit être compris entre 2 et 100.
spark.dynamicAllocation.minExecutors Nombre minimal d'exécuteurs vers lesquels le lot peut effectuer un scaling à la baisse. La valeur doit être supérieure ou égale à 2.
spark.dynamicAllocation.maxExecutors Nombre maximal d'exécuteurs pouvant effectuer un scaling à la hausse du lot. Ne doit pas dépasser 1 000.