Dataproc-Job- und -Clusterlogs können in Cloud Logging angesehen, durchsucht, gefiltert und archiviert werden.
Unter Google Cloud Observability-Preise finden Sie Informationen zu Ihren Kosten.
Unter Aufbewahrungsdauer von Logs finden Sie Informationen zur Logging-Aufbewahrung.
Unter Logausschlüsse finden Sie Informationen zum Deaktivieren aller Logs oder Ausschließen von Logs vom Logging.
Unter Übersicht: Routing und Speicher erfahren Sie, wie Sie Logs von Logging an Cloud Storage, BigQuery oder Pub/Sub weiterleiten.
Protokollierungsebenen für Komponenten
Legen Sie die Protokollierungsebenen für Spark, Hadoop, Flink und andere Dataproc-Komponenten mithilfe von komponentenspezifischen Log4j-Clustereigenschaften wie hadoop-log4j
fest, wenn Sie einen Cluster erstellen. Clusterbasierte Logging-Ebenen für Komponenten gelten für Dienst-Daemons wie den YARN ResourceManager und für Jobs, die im Cluster ausgeführt werden.
Wenn Log4j-Properties für eine Komponente nicht unterstützt werden, z. B. für die Presto-Komponente, schreiben Sie eine Initialisierungsaktion, mit der die log4j.properties
- oder log4j2.properties
-Datei der Komponente bearbeitet wird.
Jobspezifische Logging-Ebenen für Komponenten: Sie können Logging-Ebenen für Komponenten auch festlegen, wenn Sie einen Job einreichen. Diese Logging-Ebenen werden auf den Job angewendet und haben Vorrang vor den Logging-Ebenen, die beim Erstellen des Clusters festgelegt wurden. Weitere Informationen finden Sie unter Cluster- und Jobeigenschaften im Vergleich.
Protokollierungsebenen für Spark- und Hive-Komponentenversionen:
Die Spark 3.3.X- und Hive 3.X-Komponenten verwenden Log4j2-Properties, während frühere Versionen dieser Komponenten Log4j-Properties verwenden (siehe Apache Log4j2).
Verwenden Sie ein spark-log4j:
-Präfix, um die Spark-Protokollierungsebenen in einem Cluster festzulegen.
Beispiel: Dataproc-Image-Version 2.0 mit Spark 3.1 zum Festlegen von
log4j.logger.org.apache.spark
:gcloud dataproc clusters create ... \ --properties spark-log4j:log4j.logger.org.apache.spark=DEBUG
Beispiel: Dataproc-Image-Version 2.1 mit Spark 3.3 zum Festlegen von
logger.sparkRoot.level
:gcloud dataproc clusters create ...\ --properties spark-log4j:logger.sparkRoot.level=debug
Logebenen für Job-Treiber
Dataproc verwendet die standardmäßige Logging-Ebene INFO
für Job-Treiberprogramme. Sie können diese Einstellung für ein oder mehrere Pakete mit dem Flag --driver-log-levels
des Befehls gcloud dataproc jobs submit ändern.
Beispiel:
Legen Sie die DEBUG
-Protokollierungsebene fest, wenn Sie einen Spark-Job einreichen, der Cloud Storage-Dateien liest.
gcloud dataproc jobs submit spark ...\ --driver-log-levels org.apache.spark=DEBUG,com.google.cloud.hadoop.gcsio=DEBUG
Beispiel:
Legen Sie die root
-Protokollebene auf WARN
und die com.example
-Protokollebene auf INFO
fest.
gcloud dataproc jobs submit hadoop ...\ --driver-log-levels root=WARN,com.example=INFO
Spark-Ausführer-Logebenen
So konfigurieren Sie die Logging-Ebenen für den Spark-Ausführer:
Log4j-Konfigurationsdatei vorbereiten und in Cloud Storage hochladen
Geben Sie beim Einreichen des Jobs die Konfigurationsdatei an.
Beispiel:
gcloud dataproc jobs submit spark ...\ --file gs://my-bucket/path/spark-log4j.properties \ --properties spark.executor.extraJavaOptions=-Dlog4j.configuration=file:spark-log4j.properties
Spark lädt die Cloud Storage-Eigenschaftendatei in das lokale Arbeitsverzeichnis des Jobs herunter, auf das in -Dlog4j.configuration
als file:<name>
verwiesen wird.
Dataproc-Joblogs in Logging
Informationen zum Aktivieren von Dataproc-Job-Treiber-Logs in Logging finden Sie unter Dataproc-Jobausgabe und ‑Logs.
Auf Jobprotokolle in Logging zugreifen
Sie können mit dem Log-Explorer, dem Befehl gcloud logging oder der Logging API auf Dataproc-Jobprotokolle zugreifen.
Console
Dataproc-Jobtreiber und YARN-Containerlogs werden unter der Ressource Cloud Dataproc-Job aufgelistet.
Beispiel: Job-Fahrerprotokoll nach Ausführen einer Logs Explorer-Abfrage mit den folgenden Auswahlen:
- Ressource:
Cloud Dataproc Job
- Log name:
dataproc.job.driver
Beispiel: YARN-Containerlog nach Ausführen einer Logs Explorer-Abfrage mit den folgenden Auswahlen:
- Ressource:
Cloud Dataproc Job
- Log name:
dataproc.job.yarn.container
gcloud
Sie können Joblogeinträge mit dem Befehl gcloud logging read lesen. Die Ressourcenargumente müssen in Anführungszeichen gesetzt werden („...”). Mit dem folgenden Befehl werden Clusterlabels verwendet, um die zurückgegebenen Logeinträge zu filtern.
gcloud logging read \ "resource.type=cloud_dataproc_job \ resource.labels.region=cluster-region \ resource.labels.job_id=my-job-id"
Beispielausgabe (unvollständig):
jsonPayload: class: org.apache.hadoop.hdfs.StateChange filename: hadoop-hdfs-namenode-test-dataproc-resize-cluster-20190410-38an-m-0.log ,,, logName: projects/project-id/logs/hadoop-hdfs-namenode --- jsonPayload: class: SecurityLogger.org.apache.hadoop.security.authorize.ServiceAuthorizationManager filename: cluster-name-dataproc-resize-cluster-20190410-38an-m-0.log ... logName: projects/google.com:hadoop-cloud-dev/logs/hadoop-hdfs-namenode
REST API
Sie können mit der Logging REST API Logeinträge auflisten (siehe entries.list).
Dataproc-Cluster-Logs in Logging
Dataproc exportiert die folgenden Apache Hadoop-, Spark-, Hive-, ZooKeeper- und andere Dataproc-Clusterlogs in Cloud Logging.
Logtyp | Logname | Beschreibung |
---|---|---|
Master-Daemon-Logs | hadoop-hdfs hadoop-hdfs-namenode hadoop-hdfs-secondary namenode hadoop-hdfs-zkfc hadoop-yarn-resourcemanager hadoop-yarn-timelineserver hive-metastore hive-server2 mapred-mapred-historyserver zookeeper |
Journal-Knoten HDFS-NameNode Sekundärer HDFS-NameNode Zookeeper-Failover-Controller YARN-Ressourcenmanager YARN-Zeitachse-Server Hive-Metaspeicher Hive-Server2 MapReduce-Jobverlaufsserver Zookeeper-Server |
Worker-Daemon-Logs |
hadoop-hdfs-datanode hadoop-yarn-nodemanager |
HDFS-DataNode YARN-NodeManager |
Systemprotokolle |
autoscaler google.dataproc.agent google.dataproc.startup |
Dataproc-Autoscaling-Log Dataproc-Agent-Log Dataproc-Startskript-Log + Initialisierungsaktionslog |
Auf Clusterlogs in Cloud Logging zugreifen
Sie können über den Log-Explorer, den Befehl gcloud logging oder die Logging API auf Dataproc-Clusterprotokolle zugreifen.
Console
Wählen Sie die folgenden Abfrageoptionen aus, um Clusterprotokolle im Log-Explorer aufzurufen:
- Ressource:
Cloud Dataproc Cluster
- Log name: log name
gcloud
Sie können Clusterlogeinträge mit dem Befehl gcloud logging read lesen. Die Ressourcenargumente müssen in Anführungszeichen gesetzt werden („...”). Mit dem folgenden Befehl werden Clusterlabels verwendet, um die zurückgegebenen Logeinträge zu filtern.
gcloud logging read <<'EOF' "resource.type=cloud_dataproc_cluster resource.labels.region=cluster-region resource.labels.cluster_name=cluster-name resource.labels.cluster_uuid=cluster-uuid" EOF
Beispielausgabe (unvollständig):
jsonPayload: class: org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService filename: hadoop-yarn-resourcemanager-cluster-name-m.log ... logName: projects/project-id/logs/hadoop-yarn-resourcemanager --- jsonPayload: class: org.apache.hadoop.yarn.server.resourcemanager.ResourceTrackerService filename: hadoop-yarn-resourcemanager-component-gateway-cluster-m.log ... logName: projects/project-id/logs/hadoop-yarn-resourcemanager
REST API
Sie können mit der Logging REST API Logeinträge auflisten (siehe entries.list).
Berechtigungen
Zum Schreiben von Logs in Logging muss das Dataproc-VM-Dienstkonto die IAM-Rolle logging.logWriter
haben. Das Standard-Dataproc-Dienstkonto hat diese Rolle. Wenn Sie ein benutzerdefiniertes Dienstkonto verwenden, müssen Sie dem Dienstkonto diese Rolle zuweisen.
Logs schützen
Logs in Logging werden standardmäßig verschlüsselt. Sie können vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) aktivieren, um die Protokolle zu verschlüsseln. Weitere Informationen zur CMEK-Unterstützung finden Sie unter Schlüssel verwalten, die Log-Router-Daten schützen und Schlüssel verwalten, die Logging-Speicherdaten schützen.
Weitere Informationen
- Google Cloud Observability entdecken