Dataproc sans serveur utilise les propriétés Spark pour déterminer les ressources de calcul, de mémoire et de disque à allouer à votre charge de travail par lot. Ces paramètres de propriété peuvent avoir une incidence sur le coût et la consommation des quotas de charges de travail (consultez Quotas de ressources sans serveur pour Dataproc Tarifs de Dataproc sans serveur informations).
Définir les propriétés d'une charge de travail par lot Spark
Vous pouvez spécifier les propriétés Spark lorsque vous Envoyer une charge de travail par lot Spark sans serveur pour Dataproc à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Dataproc.
Console
Accédez à la page "Créer un lot" de Dataproc dans la console Google Cloud.
Dans la section Propriétés, cliquez sur Ajouter une propriété, puis saisissez
Key
(nom) etValue
d'un propriété Spark compatible.
gcloud
Exemple d'envoi par lots dans la gcloud CLI:
gcloud dataproc batches submit spark --properties=spark.checkpoint.compress=true \ --region=region \ other args ...
API
Définir RuntimeConfig.properties avec des propriétés Spark prises en charge dans un batches.create requête.
Propriétés Spark compatibles
Dataproc sans serveur pour Spark est compatible avec la plupart des propriétés Spark.
n'est pas compatible avec les propriétés Spark liées à YARN et au brassage, telles que
spark.master=yarn
et spark.shuffle.service.enabled
. Si l'application Spark
définit une propriété YARN ou brassage, l'application échouera.
Propriétés de l'environnement d'exécution
Dataproc sans serveur pour Spark est compatible avec les propriétés Spark personnalisées suivantes : pour configurer l'environnement d'exécution:
Propriété | Description |
---|---|
spark.dataproc.driverEnv.EnvironmentVariableName |
Ajoutez EnvironmentVariableName au processus du pilote. Toi vous pouvez spécifier plusieurs variables d'environnement. |
Propriétés d'allocation des ressources
Dataproc sans serveur pour Spark est compatible avec les propriétés Spark suivantes : pour configurer l'allocation des ressources:
Propriété | Description | Par défaut | Examples |
---|---|---|---|
spark.driver.cores |
Nombre de cœurs (vCPU) à allouer au pilote Spark.
Valeurs valides: 4 , 8 , 16 . |
4 |
|
spark.driver.memory |
La quantité de mémoire à allouer au processus du pilote Spark spécifié au format de chaîne de mémoire JVM avec un suffixe d'unité de taille ("m", "g") ou "t"). Mémoire totale du pilote par cœur de pilote, y compris la surcharge de la mémoire du pilote,
qui doit être comprise entre |
512m , 2g |
|
spark.driver.memoryOverhead |
Quantité de mémoire JVM supplémentaire à allouer au pilote Spark , spécifié au format de chaîne de mémoire JVM avec un suffixe d'unité de taille ("m", "g" ou "t"). Il s'agit de mémoire autre que des tas de mémoire
associée aux frais généraux de la JVM,
les chaînes internes et d'autres frais généraux natifs. Il inclut
mémoire utilisée par d'autres processus de pilote, tels que les processus du pilote PySpark
et la mémoire utilisée par d'autres processus
hors pilote exécutés dans le conteneur.
La taille maximale de la mémoire du conteneur dans lequel le pilote s'exécute est
déterminé par la somme de Mémoire totale du pilote par cœur de pilote, y compris la surcharge de la mémoire du pilote,
doit être comprise entre |
10% de la mémoire du pilote, à l'exception des charges de travail par lot PySpark, qui utilisent par défaut 40% de la mémoire du pilote | 512m , 2g |
spark.dataproc.driver.compute.tier |
Niveau de calcul à utiliser sur le pilote. Le niveau de calcul Premium offre des performances par cœur plus élevées, il est facturé à un tarif plus élevé. | standard | standard, premium |
spark.dataproc.driver.disk.size |
La quantité d'espace disque
allouée au pilote,
spécifiés par un suffixe d'unité de taille ("k", "m", "g" ou "t").
Au moins 250GiB .
Si le niveau de disque Premium est sélectionné sur le pilote, les tailles valides sont
375 g, 750 g, 1 500 g, 3 000 g, 6 000 g ou 9 000 g. |
100GiB par cœur |
1024g , 2t |
spark.dataproc.driver.disk.tier |
Niveau de disque à utiliser pour le stockage local et le stockage aléatoire sur le pilote.
Le niveau de disque Premium offre de meilleures performances en termes d'IOPS et de débit, mais
il est facturé à un tarif plus élevé. Si le niveau de disque
Premium est sélectionné sur
le niveau de calcul Premium doit aussi être sélectionné
spark.dataproc.driver.compute.tier=premium ,
et l'espace disque doit être spécifié en utilisant
spark.dataproc.executor.disk.size
Si le niveau de disque Premium est sélectionné, le pilote alloue 50 Gio d'espace disque supplémentaire pour le stockage système, ce qui n'est pas utilisables par les applications utilisateur. | standard | standard, premium |
spark.executor.cores |
Nombre de cœurs (vCPU) à allouer à chaque exécuteur Spark.
Valeurs valides: 4 , 8 , 16 . |
4 |
|
spark.executor.memory |
La quantité de mémoire à allouer à chaque processus d'exécution Spark. spécifiée au format de chaîne de mémoire JVM avec un suffixe d'unité de taille ("m", "g" ou "t"). Mémoire totale de l'exécuteur par cœur, y compris la mémoire de l'exécuteur
doit être comprise entre |
512m , 2g |
|
spark.executor.memoryOverhead |
Quantité de mémoire JVM supplémentaire à allouer au Spark processus d'exécution, spécifié au format de chaîne de mémoire JVM avec une unité de taille suffixe ("m", "g" ou "t"). Il s'agit de mémoire autre que des tas de mémoire utilisée
pour les frais généraux de la JVM, les chaînes internes
et d'autres frais généraux natifs, et inclut la mémoire de l'exécuteur PySpark et
mémoire utilisée par d'autres processus
non-exécuteurs exécutés dans le conteneur.
La taille de mémoire maximale du conteneur dans lequel l'exécuteur s'exécute est
déterminé par la somme de Mémoire totale de l'exécuteur par cœur, y compris la mémoire de l'exécuteur
doit être comprise entre |
10% de la mémoire de l'exécuteur, à l'exception des charges de travail par lot PySpark, qui, par défaut, représentent 40% de la mémoire de l'exécuteur | 512m , 2g |
spark.dataproc.executor.compute.tier |
Niveau de calcul à utiliser sur les exécuteurs. Le niveau de calcul Premium offre des performances par cœur plus élevées, il est facturé à un tarif plus élevé. | standard | standard, premium |
spark.dataproc.executor.disk.size |
La quantité d'espace disque allouée
à chaque exécuteur,
spécifiés par un suffixe d'unité de taille ("k", "m", "g" ou "t").
L'espace disque de l'exécuteur peut être utilisé pour le brassage des données et l'étape
les dépendances. Au moins 250GiB .
Si le niveau de disque Premium est sélectionné sur l’exécuteur, les tailles valides sont
375 g, 750 g, 1 500 g, 3 000 g, 6 000 g ou 9 000 g. |
100GiB par cœur |
1024g , 2t |
spark.dataproc.executor.disk.tier |
Niveau de disque à utiliser pour le stockage local et de brassage sur les exécuteurs.
Le niveau de disque Premium offre de meilleures performances en termes d'IOPS et de débit, mais
il est facturé à un tarif plus élevé. Si le niveau de disque Premium est sélectionné
exécuteur, le niveau de calcul Premium doit également être sélectionné à l'aide de
spark.dataproc.executor.compute.tier=premium ,
et l'espace disque doit être spécifié en utilisant
spark.dataproc.executor.disk.size
Si le niveau de disque Premium est sélectionné, chaque exécuteur est alloué 50 Gio d'espace disque supplémentaire pour le stockage système, ce qui n'est pas utilisables par les applications utilisateur. | standard | standard, premium |
spark.executor.instances |
Nombre initial d'exécuteurs à allouer. Après une charge de travail par lot
l'autoscaling peut modifier le nombre d'exécuteurs actifs. Doit être
entre 2 et 2000 . |
Propriétés de l'autoscaling
Voir Propriétés d'allocation dynamique Spark pour obtenir la liste des propriétés Spark que vous pouvez utiliser pour configurer Autoscaling Dataproc sans serveur.
Propriétés de journalisation
Propriété | Description | Par défaut | Examples |
---|---|---|---|
spark.log.level |
Lorsqu'il est défini, il remplace tous les paramètres de journal définis par l'utilisateur avec pour effet
un appel à SparkContext.setLogLevel() au démarrage de Spark. Valide
niveaux de journalisation: ALL , DEBUG , ERROR ,
FATAL , INFO , OFF , TRACE
et WARN . |
INFO , DEBUG |
|
spark.executor.syncLogLevel.enabled |
Si défini sur true , le niveau de journalisation appliqué via
la méthode SparkContext.setLogLevel() est
propagée à tous
les exécuteurs. |
false |
true , false |
spark.log.level.PackageName |
Si ce paramètre est défini, il remplace les paramètres de journal définis par l'utilisateur.
avec l'effet d'un appel à SparkContext.setLogLevel(PackageName, level)
au démarrage de Spark. Les niveaux de journalisation valides incluent: ALL , DEBUG ,
ERROR , FATAL , INFO , OFF
TRACE et WARN . |
spark.log.level.org.apache.spark=error |
Autres propriétés
Propriété | Description |
---|---|
dataproc.diagnostics.enabled |
Activez cette propriété pour exécuter des diagnostics en cas d'échec d'une charge de travail par lot. l'annulation. Si les diagnostics sont activés, votre charge de travail par lot continue d'utiliser ressources de calcul une fois la charge de travail terminée jusqu'à la fin des diagnostics. Un URI pointant vers l'emplacement du package tarball de diagnostics est indiqué dans Champ d'API Batch.RuntimeInfo.diagnosticOutputUri. |
dataproc.gcsConnector.version |
Utilisez cette propriété pour passer à un Version du connecteur Cloud Storage différente de celle installée avec la classe de stockage version d'exécution. |
dataproc.sparkBqConnector.version |
Utilisez cette propriété pour passer à un Version du connecteur BigQuery Spark différente de celle installée avec la classe de stockage version d'exécution (consultez Utilisez le connecteur BigQuery avec Dataproc sans serveur pour Spark). |
dataproc.profiling.enabled |
Définissez cette propriété sur true afin d'activer le profilage pour le
Charge de travail Dataproc sans serveur. |
dataproc.profiling.name |
Utilisez cette propriété pour définir le nom utilisé pour créer un profil au niveau du Profiler. |