Clusterattribute

Die in Dataproc-Clustern installierten Open-Source-Komponenten enthalten viele Konfigurationsdateien. Apache Spark und Apache Hadoop haben beispielsweise mehrere XML- und Nur-Text-Konfigurationsdateien. Mit dem Flag ‑‑properties des Befehls gcloud dataproc clusters create können Sie beim Erstellen eines Clusters viele häufig verwendete Konfigurationsdateien ändern.

Formatierung

Das Flag gcloud dataproc clusters create --properties akzeptiert das folgende Stringformat:

file_prefix1:property1=value1,file_prefix2:property2=value2,...
  • Die file_prefix wird wie in der folgenden Tabelle dargestellt einer vordefinierten Konfigurationsdatei zugeordnet und die property wird einem Attribut in der Datei zugeordnet.

  • Das Standardtrennzeichen zum Trennen mehrerer Clusterattribute ist das Komma (,). Wenn in einem Attributwert jedoch ein Komma enthalten ist, müssen Sie das Trennzeichen ändern, indem Sie ein "^delimiter^" am Anfang der Attributsliste angeben (weitere Informationen finden Sie unter gcloud topic escaping).

    • Beispiel mit einem "#"-Trennzeichen:
      --properties ^#^file_prefix1:property1=part1,part2#file_prefix2:property2=value2
      

Beispiele

gcloud-Befehl

Fügen Sie das folgende Flag gcloud dataproc clusters create --properties hinzu, um die Einstellung spark.master in der Datei spark-defaults.conf zu ändern:

--properties 'spark:spark.master=spark://example.com'

Sie können mehrere Eigenschaften gleichzeitig in einer oder mehreren Konfigurationsdateien ändern, indem Sie ein Komma als Trennzeichen verwenden. Jede Eigenschaft muss im vollständigen file_prefix:property=value-Format angegeben werden. Wenn Sie beispielsweise die Einstellung spark.master in der Datei spark-defaults.conf und die Einstellung dfs.hosts in der Datei hdfs-site.xml ändern möchten, verwenden Sie das folgende --properties-Flag, wenn Sie den Cluster erstellen:

--properties 'spark:spark.master=spark://example.com,hdfs:dfs.hosts=/foo/bar/baz'

REST API

Um spark.executor.memory auf 10g zu setzen, fügen Sie die folgende properties-Einstellung in den Abschnitt SoftwareConfig Ihrer clusters.create-Anfrage ein:

"properties": {
  "spark:spark.executor.memory": "10g"
}

Der JSON-Text einer REST-Anfrage von Cloud Dataproc API-Clustern kann einfach durch Initiieren des entsprechenden gcloud-Befehls mithilfe des Flags --log-http erstellt werden. Hier sehen Sie ein Beispiel für einen gcloud dataproc clusters create-Befehl, mit dem Cluster-Eigenschaften mit dem Flag --properties spark:spark.executor.memory=10g festgelegt werden. Das Stdout-Log zeigt den resultierenden REST-Anfragetext an (das properties-Snippet wird unten dargestellt):

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

Ausgabe:

...
== body start ==
{"clusterName": "my-cluster", "config": {"gceClusterConfig": ...
"masterConfig": {... "softwareConfig": {"properties": {"spark:spark.executor.memory": "10g"}},

... == body end == ...

Wenn Sie nicht möchten, dass der Befehl wirksam wird, beachten Sie, dass Sie den Befehl abbrechen, nachdem der JSON-Text in der Ausgabe angezeigt wird.

Console

So ändern Sie die Einstellung spark.master in der Datei spark-defaults.conf:

  1. Öffnen Sie in der Cloud Console die Dataproc-Seite Cluster erstellen. Klicken Sie unten auf der Seite auf Erweiterte Optionen, um den Abschnitt Cluster-Attribute anzuzeigen.

  2. Klicken Sie auf + Cluster-Attribut hinzufügen, wählen Sie in der linken Drop-down-Liste Spark aus und fügen Sie im Attributfeld "Spark.master" und die Einstellung im Wertfeld hinzu.

Cluster- oder Jobattribute

Die Apache Hadoop YARN-, HDFS-, Spark- und andere Dateipräfixattribute werden beim Erstellen eines Clusters auf Clusterebene angewendet. Viele dieser Attribute können auch auf bestimmte Jobs angewendet werden. Wenn Sie ein Attribut auf einen Job anwenden, wird das Dateipräfix nicht verwendet.

Beispiel:

Legen Sie den Spark-Executor-Arbeitsspeicher für einen Spark-Job auf 4 GB fest (Präfix spark: wird ausgelassen).

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

Tabelle mit Attributen mit Dateipräfixen

Dateipräfix Datei Dateizweck
capacity-scheduler capacity-scheduler.xml Hadoop YARN Capacity Scheduler-Konfiguration
core core-site.xml Hadoop – allgemeine Konfiguration
distcp distcp-default.xml Hadoop Distributed Copy-Konfiguration
hadoop-env hadoop-env.sh Hadoop-spezifische Umgebungsvariablen
HBase hbase-site.xml HBase-Konfiguration
hdfs hdfs-site.xml Hadoop – HDFS-Konfiguration
hive hive-site.xml Hive-Konfiguration
mapred mapred-site.xml Hadoop – MapReduce-Konfiguration
mapred-env mapred-env.sh Hadoop MapReduce-spezifische Umgebungsvariablen
pig pig.properties Pig-Konfiguration
presto config.properties Presto-Konfiguration
presto-jvm jvm.config Presto-spezifische JVM-Konfiguration
spark spark-defaults.conf Spark-Konfiguration
spark-env spark-env.sh Spark-spezifische Umgebungsvariablen
yarn yarn-site.xml Hadoop – YARN-Konfiguration
yarn-env yarn-env.sh Hadoop YARN-spezifische Umgebungsvariablen
zeppelin zeppelin-site.xml Zeppelin-Konfiguration
zeppelin-env zeppelin-env.sh Zeppelin-spezifische Umgebungsvariablen (nur optionale Komponente)
zookeeper zoo.cfg Zookeeper-Konfiguration

Hinweise

  • Einige Attribute sind reserviert und können nicht überschrieben werden, da sie sich auf die Funktionalität des Dataproc-Clusters auswirken. Wenn Sie versuchen, ein reserviertes Attribut zu ändern, erhalten Sie beim Erstellen des Clusters eine Fehlermeldung.
  • Mehrere Änderungen werden durch ein Komma getrennt.
  • Mit dem Flag --properties können nur die oben aufgeführten Konfigurationsdateien geändert werden.
  • Änderungen an den Attributen werden übernommen, bevor die Daemons auf dem Cluster gestartet werden.
  • Wenn das angegebene Attribut bereits vorhanden ist, wird es aktualisiert. Wenn die angegebene Eigenschaft nicht vorhanden ist, wird sie der Konfigurationsdatei hinzugefügt.

Dataproc-Dienstattribute

Die im Folgenden aufgeführten Attribute gelten speziell für Dataproc. Diese Attribute können verwendet werden, um die Funktionalität Ihres Dataproc-Clusters weiter zu konfigurieren. Diese Clusterattribute werden beim Erstellen des Clusters angegeben. Sie können nach der Clustererstellung nicht angegeben oder aktualisiert werden.

Formatierung

Das Flag gcloud dataproc clusters create --properties akzeptiert das folgende Stringformat:

property_prefix1:property1=value1,property_prefix2:property2=value2,...
  • Das Standardtrennzeichen zum Trennen mehrerer Clusterattribute ist das Komma (,). Wenn in einem Attributwert jedoch ein Komma enthalten ist, müssen Sie das Trennzeichen ändern, indem Sie "^delimiter^" am Anfang der Attributsliste angeben (weitere Informationen finden Sie unter gcloud topic escaping).

    • Beispiel mit einem "#"-Trennzeichen:
      --properties ^#^property_prefix1:property1=part1,part2#property_prefix2:property2=value2
      

Beispiel:

Erstellen Sie einen Cluster und legen Sie den Enhanced Flexibility Mode auf den primären Worker-Shuffle für Spark fest.

gcloud dataproc jobs submit spark \
    --region=region \
    --properties=dataproc:efm.spark.shuffle=primary-worker \
    ... other args ...

Tabelle der Dataproc-Dienstattribute

Attributpräfix Attribut Werte Beschreibung
Dataproc am.primary_only true oder false Setzen Sie dieses Attribut auf truetrue, um zu verhindern, dass der Anwendungsmaster auf Workern auf Abruf des Dataproc-Clusters ausgeführt wird. Hinweis: Diese Funktion ist nur in Verbindung mit Dataproc 1.2 und höher verfügbar. Der Standardwert ist false.
Dataproc dataproc.allow.zero.workers true oder false Legen Sie für dieses SoftwareConfig-Attribut true in der Cloud Dataproc clusters.createAPI-Anfrage fest, um einen Cluster mit einem einzigen Knoten zu erstellen. Dadurch wird die Standardanzahl der Worker von 2 in 0 geändert und es werden Worker-Komponenten im Masterhost platziert. Ein Cluster mit einzelnem Knoten kann auch über die Cloud Console oder mit dem gcloud-Befehlszeilentool erstellt werden, indem Sie die Anzahl der Worker auf 0 setzen.
Dataproc dataproc.alpha.master.nvdimm.size.gb 1500-6500 Durch das Festlegen eines Werts wird mit Intel Optane DC Persistent Memory ein Dataproc-Master erstellt. Hinweis: Optane-VMs können nur in us-central1-f-Zonen, nur mit n1-highmem-96-aep-Maschinentyp und nur in Projekten auf der weißen Liste erstellt werden.
dataproc: dataproc.alpha.worker.nvdimm.size.gb 1500-6500 Durch das Festlegen eines Werts wird mit Intel Optane DC Persistent Memory ein Dataproc-Worker erstellt. Hinweis: Optane-VMs können nur in us-central1-f-Zonen, nur mit n1-highmem-96-aep-Maschinentyp und nur in Projekten auf der weißen Liste erstellt werden.
Dataproc dataproc.conscrypt.provider.enable true oder false Aktiviert (true) oder deaktiviert (false) Conscrypt als primären Java-Sicherheitsanbieter. Hinweis: Conscrypt ist in Dataproc 1.2 und höher standardmäßig aktiviert, jedoch in 1.0/1.1 deaktiviert.
Dataproc dataproc.localssd.mount.enable true oder false Gibt an, ob lokale SSDs als temporäre Hadoop/Spark-Verzeichnisse und HDFS-Datenverzeichnisse bereitgestellt werden sollen (Standardeinstellung: true).
Dataproc dataproc.logging.stackdriver.enable true oder false Aktiviert (true) oder deaktiviert (false) das Logging (Standardeinstellung: true).
Dataproc dataproc.logging.stackdriver.job.driver.enable true oder false Aktiviert (true) oder deaktiviert (false) Dataproc-Jobtreiberprotokolle in Logging (Standardeinstellung: false).
Dataproc dataproc.logging.stackdriver.job.yarn.container.enable true oder false Aktiviert (true) oder deaktiviert (false) YARN-Containerlogs in Logging. (Standardeinstellung: false)
Dataproc dataproc.monitoring.stackdriver.enable true oder false Aktiviert (true) oder deaktiviert (false) den Monitoring-Agent.
Dataproc dataproc.scheduler.driver-size-mb number Der durchschnittliche Speicherbedarf des Treibers, der die maximale Anzahl gleichzeitiger Jobs bestimmt, die ein Cluster ausführen wird. Der Standardwert ist 1 GB. Für Spark-Jobs kann ein kleinerer Wert wie 256 geeignet sein.
Dataproc dataproc.worker.custom.init.actions.mode RUN_BEFORE_SERVICES (Standardeinstellung: nicht aktiviert ). Wenn dieses Flag während der Clustererstellung angegeben wird und die primäre Worker-VM zum ersten Mal gestartet wird, werden die Initialisierungsaktionen ausgeführt, bevor der Knotenmanager und die Datenknoten-Daemons gestartet werden. Weitere Informationen finden Sie unter Initialisierungsaktionen – wichtige Überlegungen und Richtlinien.
Dataproc efm.mapreduce.shuffle hcfs Legen Sie für das Attribut Dataproc Enhanced Flexibility Mode den Wert hcfs fest, damit MapReduce-Shuffle-Daten in HDFS beibehalten werden, wenn ein Dataproc-Knoten entfernt wird. Hinweis: Diese Funktion ist nur in Verbindung mit Dataproc 1.4 und höher verfügbar.
Dataproc efm.spark.shuffle hcfs Setzen Sie dieses Attribut Dataproc Enhanced Flexibility Mode auf hcfs, um Spark-Shuffle-Daten in HDFS beizubehalten, wenn ein Dataproc-Knoten entfernt wird. Hinweis: Diese Funktion ist derzeit nur in Dataproc 1.4 verfügbar.
Dataproc job.history.to-gcs.enabled true oder false Ermöglicht das Beibehalten von MapReduce- und Spark-Verlaufsdateien im temporären Dataproc-Bucket (Standardeinstellung: true für Image-Versionen 1.5 und höher). Nutzer können die Speicherorte der Jobprotokoll-Persistenz über die folgenden Attribute überschreiben: mapreduce.jobhistory.done-dir, mapreduce.jobhistory.intermediate-done-dir, spark.eventLog.dir, und spark.history.fs.logDirectory
Dataproc jobs.file-backed-output.enable true oder false Konfiguriert Dataproc-Jobs, um ihre Ausgabe an temporäre Dateien im Verzeichnis /var/log/google-dataproc-job weiterzuleiten. Muss auf true gesetzt werden, damit das Jobtreiber-Logging in Logging aktiviert wird (Standardeinstellung: true).
Dataproc jupyter.listen.all.interfaces true oder false Um das Risiko der Remotecodeausführung über unsichere Notebookserver-APIs zu verringern, ist die Standardeinstellung für Image-Versionen 1.3 und höher false, die Verbindungen auf localhost (127.0.0.1) beschränkt, wenn Komponenten-Gateway ist aktiviert. Diese Standardeinstellung kann überschrieben werden, indem für dieses Attribut true festgelegt wird.
Dataproc jupyter.notebook.gcs.dir gs://<dir-path> Speicherort in Cloud Storage zum Speichern von Jupyter-Notebooks.
Dataproc kerberos.beta.automatic-config.enable true oder false Wenn true festgelegt ist, müssen Nutzer das Passwort des Kerberos-Root-Hauptkontos nicht mit den Flags --kerberos-root-principal-password und --kerberos-kms-key-uri (Standard: false) angeben. Weitere Informationen finden Sie unter Sicheren Hadoop-Modus über Kerberos aktivieren.
Dataproc kerberos.cross-realm-trust.admin-server hostname/address Hostname/Adresse des Remote-Admin-Servers (oft identisch mit dem KDC-Server).
Dataproc kerberos.cross-realm-trust.kdc hostname/address Hostname/Adresse des entfernten KDC.
Dataproc kerberos.cross-realm-trust.realm realm name Realm-Namen können aus beliebigen ASCII-Strings in GROSSBUCHSTABEN bestehen. Normalerweise ist der Realm-Name derselbe wie Ihr DNS-Domainname (in GROSSBUCHSTABEN). Beispiel: Wenn Maschinen den Namen "machine-id.example.west-coast.mycompany.com" erhalten, kann der zugeordnete Realm als "EXAMPLE.WEST-COAST.MYCOMPANY.COM" bezeichnet werden.
Dataproc kerberos.cross-realm-trust.shared-password.uri gs://<dir-path> Speicherort in Cloud Storage des mit KMS verschlüsselten freigegebenen Passworts.
Dataproc kerberos.kdc.db.key.uri gs://<dir-path> Speicherort in Cloud Storage der KMS-verschlüsselten Datei mit dem Masterschlüssel der KDC-Datenbank.
Dataproc kerberos.key.password.uri gs://<dir-path> Speicherort in Cloud Storage der KMS-verschlüsselten Datei, die das Passwort des Schlüssels in der Keystore-Datei enthält.
Dataproc kerberos.keystore.password.uri gs://<dir-path> Speicherort in Cloud Storage der KMS-verschlüsselten Datei, die das Keystore-Passwort enthält.
Dataproc kerberos.keystore.uri1 gs://<dir-path> Speicherort in Cloud Storage der Keystore-Datei, die das Platzhalterzertifikat und den von Clusterknoten verwendeten privaten Schlüssel enthält.
Dataproc kerberos.kms.key.uri KMS key URI Der URI des KMS-Schlüssels zum Entschlüsseln des Root-Passworts, z. B. projects/project-id/locations/region/keyRings/key-ring/cryptoKeys/key (siehe Schlüsselressourcen-ID).
Dataproc kerberos.root.principal.password.uri gs://<dir-path> Speicherort in Cloud Storage des KMS-verschlüsselten Passworts für das Kerberos-Root-Principal.
Dataproc kerberos.tgt.lifetime.hours hours Maximale Lebensdauer des Ticket gewährenden Tickets.
Dataproc kerberos.truststore.password.uri gs://<dir-path> Speicherort in Cloud Storage der KMS-verschlüsselten Datei, die das Passwort für die Truststore-Datei enthält.
Dataproc kerberos.truststore.uri2 gs://<dir-path> Speicherort in Cloud Storage der KMS-verschlüsselten Datei, die vertrauenswürdige Zertifikate enthält.
Dataproc ranger.kms.key.uri KMS key URI Der URI des KMS-Schlüssels, der zum Entschlüsseln des Administratorpassworts für Ranger verwendet wird, z. B. projects/project-id/locations/region/keyRings/key-ring/cryptoKeys/key Schlüsselressourcen-ID.
Dataproc ranger.admin.password.uri gs://<dir-path> Speicherort in Cloud Storage des mit KMS verschlüsselten Passworts für den Ranger-Administrator.
Dataproc ranger.db.admin.password.uri gs://<dir-path> Speicherort des KMS-verschlüsselten Passworts für den Ranger-Datenbankadministrator in Cloud Storage.
Dataproc ranger.cloud-sql.instance.connection.name cloud sql instance connection time Die Verbindungszeit der Cloud SQL-Instanz, z. B. project-id:region:name.
Dataproc ranger.cloud-sql.root.password.uri gs://<dir-path> Speicherort in Cloud Storage des KMS-verschlüsselten Passworts für den Root-Nutzer der Cloud SQL-Instanz.
Dataproc ranger.cloud-sql.use-private-ip true oder false Legt fest, ob die Kommunikation zwischen Clusterinstanzen und der Cloud SQL-Instanz über eine private IP-Adresse erfolgen soll (Standardwert ist false).
Dataproc solr.gcs.path gs://<dir-path> Cloud Storage-Pfad, der als Solr-Basisverzeichnis fungiert.
Dataproc startup.component.service-binding-timeout.hadoop-hdfs-namenode seconds Die Zeitspanne, die das Dataproc-Startskript wartet, bis das Hadoop-HDFS-namenode an Ports gebunden ist, bevor entschieden wird, dass der Start erfolgreich war. Der maximal erkannte Wert beträgt 1.800 Sekunden (30 Minuten).
Dataproc startup.component.service-binding-timeout.hive-metastore seconds Die Zeitspanne, die das Dataproc-Startskript auf die Bindung des Hive-Metastore-Dienstes an Ports wartet, bevor entschieden wird, dass der Start erfolgreich war. Der maximal erkannte Wert beträgt 1.800 Sekunden (30 Minuten).
Dataproc startup.component.service-binding-timeout.hive-server2 seconds Die Zeit, die das Dataproc-Startskript auf die Bindung des Hive-Servers2 an Ports wartet, bevor entschieden wird, dass der Start erfolgreich war. Der maximal erkannte Wert beträgt 1.800 Sekunden (30 Minuten).
Dataproc yarn.log-aggregation.enabled true oder false Ermöglicht, dass (true) die YARN-Log-Aggregation in einem temporären Dataproc-Bucket aktiviert. Der Bucket-Name hat das folgende Format: dataproc-temp-<REGION>-<PROJECT_NUMBER>-<RANDOM_STRING>. (Standard: true für Image-Versionen 1.5 und höher). Nutzer können auch den Speicherort aggregierter YARN-Protokolle festlegen, indem sie das YARN-Attribut yarn.nodemanager.remote-app-log-dir überschreiben.
Knox gateway.host ip address Zur Reduzierung des Risikos der Remote-Code-Ausführung über ungesicherte Notebookserver-APIs ist die Standardeinstellung für Image-Versionen 1.3 und höher 127.0.0.1, die Verbindungen zu localhost einschränkt, wenn Component Gateway aktiviert ist. Die Standardeinstellung kann überschrieben werden, indem Sie beispielsweise dieses Attribut auf 0.0.0.0 setzen, um alle Verbindungen zuzulassen.
zeppelin zeppelin.notebook.gcs.dir gs://<dir-path> Speicherort in Cloud Storage zum Speichern von Zeppelin-Notebooks.
zeppelin zeppelin.server.addr ip address Um das Risiko der Remote-Codeausführung über unsichere Notebookserver-APIs zu verringern, ist für Image-Versionen 1.3 oder höher 127.0.0.1 die Standardeinstellung. Dadurch werden Verbindungen zu localhost eingeschränkt, wenn Component Gateway aktiviert ist. Diese Standardeinstellung kann überschrieben werden, indem Sie beispielsweise dieses Attribut auf 0.0.0.0 setzen, um alle Verbindungen zuzulassen.

1Keystore-Datei: Die Keystore-Datei enthält das SSL-Zertifikat. Es muss im JKS-Format (Java KeyStore) vorliegen. Beim Kopieren in VMs wird er in keystore.jks umbenannt. Das SSL-Zertifikat muss ein Platzhalterzertifikat sein, das für jeden Knoten im Cluster gilt.

2Truststore-Datei: Die Truststore-Datei muss im JKS-Format (Java KeyStore) vorliegen. Beim Kopieren in VMs wird er in truststore.jks umbenannt.