Propriétés du cluster

Les composants Open Source installés sur les clusters Dataproc contiennent de nombreux fichiers de configuration. Par exemple, Apache Spark et Apache Hadoop ont plusieurs fichiers de configuration aux formats XML et texte brut. Vous pouvez utiliser l'option ‑‑properties de la commande gcloud dataproc clusters create dans le SDK Cloud pour modifier de nombreux fichiers de configuration courants lors de la création d'un cluster.

Clusters et propriétés des tâches. Les propriétés Apache Hadoop YARN, HDFS, Spark et autres propriétés avec préfixes répertoriées ci-dessous s'appliquent au niveau du cluster lorsque vous en créez un. La plupart de ces propriétés peuvent s'appliquer à des tâches spécifiques à l'aide de l'option --properties avec la commande gcloud dataproc jobs submit. Lorsque vous appliquez une propriété à une tâche, le préfixe de fichier associé indiqué ci-dessous n'est pas utilisé.

Exemple :

gcloud dataproc clusters create my-cluster \
    --region=region \
    --properties=spark:spark.executor.memory=4g \
    ... other args ...

Pour définir la mémoire de l'exécuteur Spark sur 4g pour une tâche Spark (préfixe spark: omis) :

gcloud dataproc jobs submit spark \
    --region=region \
    --properties=spark.executor.memory=4g \
    ... other args ...

Fonctionnement de l'indicateur properties

Pour faciliter la mise à jour des fichiers et des propriétés, l'indicateur gcloud dataproc clusters create --properties utilise un format spécial pour spécifier le fichier de configuration, ainsi que la propriété et la valeur à mettre à jour.

Mise en forme

L'indicateur --properties nécessite une chaîne de texte au format suivant :

file_prefix1:property1=value1,file_prefix2:property2=value2,...

Remarques :

  • L'option --properties permet de modifier un ensemble spécifique de fichiers de configuration couramment utilisés. La valeur file_prefix correspond à un ensemble prédéfini de fichiers de configuration.

  • Le délimiteur par défaut utilisé pour séparer plusieurs propriétés est la virgule (,). Toutefois, si une virgule est incluse dans une valeur de propriété, vous devez modifier le délimiteur en spécifiant "^DELIMITER^" au début de la liste des propriétés.

    Exemple d'utilisation d'un délimiteur "#" :

    --properties ^#^file_prefix1:property1=part1,part2#file_prefix2:property2=value2
    
    Pour en savoir plus, consultez la section sur gcloud topic escaping.

Préfixe de fichier Fichier Objectif du fichier
capacity-scheduler capacity-scheduler.xml Configuration du planificateur de capacité Hadoop YARN
core core-site.xml Configuration générale de Hadoop
distcp distcp-default.xml Configuration de Hadoop Distributed Copy
hadoop-env hadoop-env.sh Variables d'environnement spécifiques à Hadoop
hbase hbase-site.xml Configuration HBase
hdfs hdfs-site.xml Configuration de Hadoop HDFS
hive hive-site.xml Configuration de Hive
mapred mapred-site.xml Configuration de Hadoop MapReduce
mapred-env mapred-env.sh Variables d'environnement spécifiques à Hadoop MapReduce
pig pig.properties Configuration de Pig
presto config.properties Configuration de Presto
presto-jvm jvm.config Configuration JVM spécifique à Presto
spark spark-defaults.conf Configurer Spark
spark-env spark-env.sh Variables d'environnement spécifiques à Spark
yarn yarn-site.xml Configuration de Hadoop YARN
yarn-env yarn-env.sh Variables d'environnement spécifiques à Hadoop YARN
zeppelin zeppelin-site.xml Configuration de Zeppelin
zeppelin-env zeppelin-env.sh Variables d'environnement spécifiques à Zeppelin (composant facultatif uniquement)
zookeeper zoo.cfg Configuration de Zookeeper

Remarques importantes

  • Certaines propriétés sont réservées et ne peuvent pas être remplacées, car elles ont un impact sur les fonctionnalités du cluster Dataproc. Si vous essayez de modifier une propriété réservée, vous recevez un message d'erreur lors de la création du cluster.
  • Vous pouvez spécifier plusieurs modifications en les séparant par une virgule.
  • L'indicateur --properties ne peut pas modifier les fichiers de configuration qui ne sont pas répertoriés ci-dessus.
  • Les modifications apportées aux propriétés sont appliquées avant le démarrage des daemons du cluster.
  • Si la propriété spécifiée existe, elle est mise à jour. Si la propriété spécifiée n'existe pas, elle est ajoutée au fichier de configuration.

Propriétés du service Dataproc

Il s'agit de propriétés supplémentaires spécifiques à Dataproc qui ne sont pas incluses dans les fichiers répertoriés ci-dessus. Ces propriétés peuvent être utilisées pour configurer les fonctionnalités de votre cluster Dataproc. Remarque : Les propriétés de cluster suivantes sont spécifiées lors de la création du cluster. Elles ne peuvent pas être spécifiées ni mises à jour après la création du cluster.

Propriété Valeurs Fonction
dataproc:am.primary_only true ou false Définissez cette propriété sur true pour empêcher l'application maître de s'exécuter sur des nœuds de calcul préemptifs du cluster Dataproc. Remarque : Cette fonctionnalité est uniquement disponible dans Dataproc 1.2 et versions ultérieures. La valeur par défaut est false.
dataproc:dataproc.allow.zero.workers true ou false Définissez la propriété SoftwareConfig sur true dans une requête API Dataproc clusters.create pour créer un cluster à nœud unique. Cela permet de modifier le nombre de nœuds de calcul par défaut de 2 à 0, et de placer les composants de nœud de calcul sur l'hôte maître. Un cluster à nœud unique peut également être créé à partir de Cloud Console ou de l'outil de ligne de commande gcloud en définissant le nombre de nœuds de calcul sur 0.
dataproc:dataproc.alpha.master.nvdimm.size.gb 1500-6500 La définition d'une valeur crée un nœud maître Dataproc avec la mémoire persistante Intel Optane DC. Remarque : Les VM Optane ne peuvent être créées que dans des zones us-central1-f, avec le type de machine n1-highmem-96-aep et uniquement dans les projets en liste blanche.
dataproc:dataproc.alpha.worker.nvdimm.size.gb 1500-6500 La définition d'une valeur crée un nœud de calcul Dataproc avec la mémoire persistante Intel Optane DC. Remarque : Les VM Optane ne peuvent être créées que dans des zones us-central1-f, avec le type de machine n1-highmem-96-aep et uniquement dans les projets en liste blanche.
dataproc:dataproc.conscrypt.provider.enable true ou false Active (true) ou désactive (false) Conscrypt en tant que fournisseur de sécurité Java principal. Remarque : Conscrypt est activé par défaut dans Dataproc 1.2 et versions ultérieures, mais désactivé dans les versions 1.0/1.1.
dataproc:dataproc.localssd.mount.enable true ou false Permet de monter des disques SSD locaux en tant que répertoires temporaires Hadoop/Spark et répertoires de données HDFS (la valeur par défaut est true).
dataproc:dataproc.logging.stackdriver.enable true ou false Active (true) ou désactive (false) Logging (valeur par défaut : true).
dataproc:dataproc.logging.stackdriver.job.driver.enable true ou false Active (true) ou désactive (false) les journaux de pilotes de tâches Dataproc dans Logging (valeur par défaut : false).
dataproc:dataproc.logging.stackdriver.job.yarn.container.enable true ou false Active (true) ou désactive (false) les journaux de conteneurs YARN dans Logging. (par défaut : false).
dataproc:dataproc.monitoring.stackdriver.enable true ou false Active (true) ou désactive (false) l'agent Monitoring.
dataproc:dataproc.scheduler.driver-size-mb number L'espace mémoire moyen du pilote, qui détermine le nombre maximal de tâches simultanées qu'un cluster va exécuter. La valeur par défaut est de 1 Go. Une valeur plus faible, telle que 256, peut être appropriée pour les tâches Spark.
dataproc:dataproc.worker.custom.init.actions.mode RUN_BEFORE_SERVICES (Valeur par défaut : non activée). Si elle est spécifiée, lors de la création de clusters, lorsqu'une VM de nœud de calcul principale est démarrée pour la première fois, ses actions d'initialisation seront exécutées avant le démarrage des gestionnaires de nœuds et des daemons Datanode. Consultez la page Utiliser les actions d'initialisation.
dataproc:efm.mapreduce.shuffle hcfs Définissez cette propriété Mode de flexibilité améliorée de Dataproc sur hcfs pour conserver les données de brassage MapReduce dans HDFS lorsqu'un nœud Dataproc est supprimé. Remarque : Cette fonctionnalité est uniquement disponible dans Dataproc 1.4 et versions ultérieures.
dataproc:efm.spark.shuffle hcfs Définissez cette propriété Mode de flexibilité améliorée de Dataproc sur hcfs pour conserver les données de brassage Spark dans HDFS lorsqu'un nœud Dataproc est supprimé. Remarque : Actuellement, cette fonctionnalité n'est disponible qu'avec Dataproc 1.4.
dataproc:job.history.to-gcs.enabled true ou false Permet de conserver les fichiers d'historique MapReduce et Spark dans le bucket temporaire Dataproc (valeur par défaut : true pour les versions d'image 1.5 et ultérieures). Les utilisateurs peuvent remplacer les emplacements de persistance des fichiers d'historique des tâches via les propriétés suivantes: mapreduce.jobhistory.done-dir, mapreduce.jobhistory.intermediate-done-dir, spark.eventLog.dir et spark.history.fs.logDirectory.
dataproc:jobs.file-backed-output.enable true ou false Configure les tâches Dataproc pour diriger leur sortie vers des fichiers temporaires dans le répertoire /var/log/google-dataproc-job. Doit être défini sur true pour activer la journalisation du pilote de tâches dans Logging (valeur par défaut : true).
dataproc:jupyter.listen.all.interfaces true ou false Pour réduire le risque d'exécution de code à distance sur les API de serveur de notebooks non sécurisées, le paramètre par défaut pour les versions d'images 1.3 et ultérieures est false. Il limite les connexions à localhost (127.0.0.1) lorsque Passerelle des composants est activée. Ce paramètre par défaut peut être remplacé en définissant la propriété sur true pour autoriser toutes les connexions.
dataproc:jupyter.notebook.gcs.dir gs://<dir-path> Emplacement dans Cloud Storage qui sert à enregistrer les notebooks Jupyter.
dataproc:kerberos.cross-realm-trust.admin-server hostname/address Nom d'hôte/adresse du serveur d'administration distant (souvent identique à celui/celle du serveur KDC).
dataproc:kerberos.cross-realm-trust.kdc hostname/address Nom d'hôte/adresse du serveur KDC distant.
dataproc:kerberos.cross-realm-trust.realm realm name Les noms de domaine peuvent être constitués de n'importe quelle chaîne ASCII en MAJUSCULES. Généralement, le nom de domaine est identique à votre nom de domaine DNS (en MAJUSCULES). Exemple : Si les ordinateurs portent le nom "machine-idexample.west-coast.mycompany.com", le domaine associé peut être désigné par "EXAMPLE.WEST-COAST.MYCOMPANY.COM".
dataproc:kerberos.cross-realm-trust.shared-password.uri gs://<dir-path> Emplacement dans Cloud Storage du mot de passe partagé chiffré KMS.
dataproc:kerberos.kdc.db.key.uri gs://<dir-path> Emplacement dans Cloud Storage du fichier chiffré KMS contenant la clé principale de la base de données KDC.
dataproc:kerberos.key.password.uri gs://<dir-path> Emplacement dans Cloud Storage du fichier chiffré KMS contenant le mot de passe de la clé dans le fichier keystore.
dataproc:kerberos.keystore.password.uri gs://<dir-path> Emplacement dans Cloud Storage du fichier chiffré KMS contenant le mot de passe du fichier keystore.
dataproc:kerberos.keystore.uri1 gs://<dir-path> Emplacement dans Cloud Storage du fichier keystore contenant le certificat générique et la clé privée utilisée par les nœuds du cluster.
dataproc: kerberos.kms.key.uri KMS key URI URI de la clé KMS utilisée pour déchiffrer le mot de passe racine, par exemple projects/project-id/locations/region/keyRings/key-ring/cryptoKeys/key (voir ID de ressource de la clé).
dataproc:kerberos.root.principal.password.uri gs://<dir-path> Emplacement dans Cloud Storage du mot de passe chiffré KMS pour le compte principal racine Kerberos.
dataproc:kerberos.tgt.lifetime.hours hours Durée de vie maximale du ticket TGT (ticket granting ticket ou ticket d'octroi de ticket).
dataproc: kerberos.truststore.password.uri gs://<dir-path> Emplacement dans Cloud Storage du fichier chiffré KMS contenant le mot de passe du fichier truststore.
dataproc:kerberos.truststore.uri2 gs://<dir-path> Emplacement dans Cloud Storage du fichier truststore chiffré KMS contenant des certificats approuvés.
dataproc:ranger.kms.key.uri KMS key URI URI de la clé KMS utilisée pour déchiffrer le mot de passe administrateur Ranger, par exemple projects/project-id/locations/region/keyRings/key-ring/cryptoKeys/key (voir ID de ressource de la clé).
dataproc:ranger.admin.password.uri gs://<dir-path> Emplacement dans Cloud Storage du mot de passe chiffré KMS pour l'administrateur Ranger.
dataproc:ranger.db.admin.password.uri gs://<dir-path> Emplacement dans Cloud Storage du mot de passe chiffré KMS pour l'administrateur de la base de données Ranger.
dataproc:ranger.cloud-sql.instance.connection.name cloud sql instance connection time Temps de connexion de l'instance Cloud SQL, par exemple project-id:region:name.
dataproc:ranger.cloud-sql.root.password.uri gs://<dir-path> Emplacement dans Cloud Storage du mot de passe chiffré KMS pour l'utilisateur racine de l'instance Cloud SQL.
dataproc:ranger.cloud-sql.use-private-ip true ou false Indique si la communication entre les instances de cluster et l'instance Cloud SQL doit être via une adresse IP privée (la valeur par défaut est false).
dataproc:solr.gcs.path gs://<dir-path> Chemin d'accès Cloud Storage pour agir en tant que répertoire d'accueil Solr.
dataproc:startup.component.service-binding-timeout.hadoop-hdfs-namenode seconds Durée pendant laquelle le script de démarrage Dataproc attend que le paramètre hadoop-hdfs-namenode soit associé aux ports avant de décider que son démarrage a réussi. La valeur maximale reconnue est de 1 800 secondes (30 minutes).
dataproc:startup.component.service-binding-timeout.hive-metastore seconds Durée pendant laquelle le script de démarrage Dataproc attend que le service hive-metastore soit associé aux ports avant de décider que son démarrage a réussi. La valeur maximale reconnue est de 1 800 secondes (30 minutes).
dataproc:startup.component.service-binding-timeout.hive-server2 seconds Durée pendant laquelle le script de démarrage Dataproc attend que le paramètre hive-server2 soit associé aux ports avant de décider que son démarrage a réussi. La valeur maximale reconnue est de 1 800 secondes (30 minutes).
dataproc:yarn.log-aggregation.enabled true ou false Permet (true) d'activer l'agrégation de journaux YARN dans un bucket temporaire Dataproc. Le nom du bucket se présente sous la forme suivante : dataproc-temp-<REGION>-<PROJECT_NUMBER>-<RANDOM_STRING>. (Valeur par défaut : true pour les versions d'image 1.5 et ultérieures). Les utilisateurs peuvent également définir l'emplacement des journaux YARN agrégés en écrasant la propriété YARN yarn.nodemanager.remote-app-log-dir.
knox:gateway.host ip address Pour réduire le risque d'exécution de code à distance sur les API de serveur de notebooks non sécurisées, le paramètre par défaut pour les versions d'images 1.3 et ultérieures est 127.0.0.1. Il limite les connexions à localhost lorsque Passerelle des composants est activée. Le paramètre par défaut peut être remplacé, par exemple en définissant la propriété sur 0.0.0.0 pour autoriser toutes les connexions.
zeppelin:zeppelin.notebook.gcs.dir gs://<dir-path> Emplacement dans Cloud Storage qui sert à enregistrer les notebooks Zeppelin.
zeppelin:zeppelin.server.addr ip address Pour réduire le risque d'exécution de code à distance sur les API de serveur de notebooks non sécurisées, le paramètre par défaut pour les versions d'images 1.3 et ultérieures est 127.0.0.1. Il limite les connexions à localhost lorsque Passerelle des composants est activée. Ce paramètre par défaut peut être remplacé, par exemple en définissant la propriété sur 0.0.0.0 pour autoriser toutes les connexions.

1Fichier keystore : le fichier keystore contient le certificat SSL. Il doit être au format Java KeyStore (JKS). Lorsqu'il est copié sur les VM, il est renommé keystore.jks. Le certificat SSL doit être un certificat générique qui s'applique à chaque nœud du cluster.

2Fichier truststore : le fichier truststore doit être au format Java KeyStore (JKS). Lorsqu'il est copié sur les VM, il est renommé truststore.jks.

Exemples

Commande gcloud

Pour modifier le paramètre spark.master dans le fichier spark-defaults.conf, vous pouvez ajouter l'option suivante properties lors de la création d'un cluster sur la ligne de commande :
--properties 'spark:spark.master=spark://example.com'
Vous pouvez modifier plusieurs propriétés à la fois, dans un ou plusieurs fichiers de configuration, à l'aide d'une virgule en guise de séparateur. Chaque propriété doit être spécifiée au format file_prefix:property=value complet. Par exemple, pour modifier le paramètre spark.master dans le fichier spark-defaults.conf et le paramètre dfs.hosts dans le fichier hdfs-site.xml, vous pouvez utiliser l'option suivante lors de la création d'un cluster :
--properties 'spark:spark.master=spark://example.com,hdfs:dfs.hosts=/foo/bar/baz'

API REST

Pour définir spark.executor.memory sur 10g, insérez le paramètre properties suivant dans la section SoftwareConfig de votre requête clusters.create :
"properties": {
  "spark:spark.executor.memory": "10g"
}

Console

Pour modifier le paramètre spark.master dans le fichier spark-defaults.conf, procédez comme suit :
  1. Dans Cloud Console, ouvrez la page Dataproc Créer un cluster. Cliquez sur Options avancées en bas de la page pour afficher la section Propriétés du cluster.

  2. Cliquez sur + Add cluster property (+ Ajouter une propriété de cluster), sélectionnez spark dans la liste déroulante de gauche, puis ajoutez "spark.master" dans le champ de propriété et le paramètre dans le champ de valeur.