Sie können den Befehl gcloud dataproc clusters diagnose
ausführen, um System-, Spark-, Hadoop- und Dataproc-Logs, Clusterkonfigurationsdateien und andere Informationen zu erfassen, die Sie untersuchen oder für den Google-Support zur Fehlerbehebung in einem Dataproc-Cluster oder -Job freigeben können.
Mit dem Befehl werden die Diagnosedaten und die Zusammenfassung in den Dataproc-Staging-Bucket in Cloud Storage hochgeladen.
Google Cloud CLI-Befehl zur Clusterdiagnose ausführen
Führen Sie den Befehl gcloud dataproc clusters diagnose
aus, um den Speicherort der Diagnosearchivdatei zu erstellen und auszugeben.
gcloud dataproc clusters diagnose CLUSTER_NAME \ --region=REGION \ OPTIONAL FLAGS ...
Hinweise:
- CLUSTER_NAME: Der Name des zu diagnostizierenden Clusters.
- REGION: Die Region des Clusters, z. B.
us-central1
. OPTIONAL FLAGS:
--job-ids
: Mit diesem Flag können Sie neben den Standardprotokolldateien auch Jobtreiber-, Spark-Ereignis-, YARN-Anwendungs- und Spark Lense-Ausgabelogs für eine angegebene durch Kommas getrennte Liste von Job-IDs erfassen. Für MapReduce-Jobs werden nur YARN-Anwendungslogs erfasst. Für die Erfassung von YARN-Anwendungslogs muss die YARN-Logaggregation aktiviert sein.--yarn-application-ids
: Mit diesem Flag können Sie neben den Standardlogdateien auch Jobtreiber, Spark-Ereignisse, YARN-Anwendungs- und Spark Lense-Ausgabeprotokolle für eine angegebene durch Kommas getrennte Liste von YARN-Anwendungs-IDs erfassen. Die YARN-Logaggregation muss für das Erfassen von YARN-Anwendungslogs aktiviert sein.--start-time
mit--end-time
: Verwenden Sie beide Flags, um einen Zeitraum im Format%Y-%m-%dT%H:%M:%S.%fZ
für die Erhebung von Diagnosedaten anzugeben. Wenn Sie einen Zeitraum angeben, können in diesem Zeitraum auch Dataproc-Autoscaling-Logs erfasst werden. Standardmäßig werden Dataproc-Autoscaling-Logs nicht in den Diagnosedaten erfasst.--tarball-access
=GOOGLE_DATAPROC_DIAGNOSE
Verwenden Sie dieses Flag, um die Diagnose-TAR-Datei an das Google Cloud-Supportteam zu senden oder Zugriff darauf zu gewähren. Stellen Sie dem Google Cloud-Supportteam außerdem folgende Informationen zur Verfügung:- Cloud Storage-Pfad der Diagnose-TAR-Datei oder
- Clusterkonfigurations-Bucket, Cluster-UUID und Vorgangs-ID des „diagnose“-Befehls
Führen Sie das Diagnoseskript über den Masterknoten des Clusters aus (falls erforderlich)
Der Befehl gcloud dataproc clusters diagnose
kann fehlschlagen oder zu einer Zeitüberschreitung führen, wenn ein Cluster einen Fehlerstatus hat und keine Diagnoseaufgaben vom Dataproc-Server annehmen kann. Als Alternative zum Ausführen des Diagnosebefehls können Sie auch über SSH eine Verbindung zum Masterknoten des Clusters herstellen, das Diagnoseskript herunterladen und das Skript dann lokal auf dem Masterknoten ausführen.
gcloud compute ssh HOSTNAME
gsutil cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh
Die TAR-Datei des Diagnosearchivs wird in einem lokalen Verzeichnis gespeichert. In der Befehlsausgabe wird der Speicherort der TAR-Datei mit Anweisungen zum Hochladen der TAR-Datei in einen Cloud Storage-Bucket aufgelistet.
Diagnosedaten teilen
So geben Sie das Archiv frei:
- Laden Sie das Archiv aus Cloud Storage herunter und geben Sie es dann frei oder
- Ändern Sie die Berechtigungen für das Archiv, damit andere Google Cloud-Nutzer oder -Projekte auf die Datei zugreifen können.
Beispiel: Mit dem folgenden Befehl werden dem Archiv in einem test-project
Leseberechtigungen hinzugefügt:
gsutil -m acl ch -g test-project:R PATH_TO_ARCHIVE}
Zusammenfassung der Diagnose und Archivinhalte
Der Befehl diagnose
gibt eine Diagnosezusammenfassung und eine Archiv-TAR-Datei aus, die Clusterkonfigurationsdateien, Logs sowie andere Dateien und Informationen enthält. Die Archiv-TAR-Datei wird in den Dataproc-Staging-Bucket in Cloud Storage geschrieben.
Zusammenfassung der Diagnose:Das Diagnoseskript analysiert gesammelte Daten und generiert eine summary.txt
im Stammverzeichnis des Diagnosearchivs. Die Zusammenfassung bietet einen Überblick über den Clusterstatus, einschließlich YARN, HDFS, Laufwerk- und Netzwerkstatus, sowie Warnungen zu möglichen Problemen.
TAR-Datei archivieren:In den folgenden Abschnitten werden die Dateien und Informationen aufgeführt, die in der TAR-Datei des Diagnosearchivs enthalten sind.
Informationen zu Daemons und Dienstleistungen
Ausgeführter Befehl | Speicherort im Archiv |
---|---|
yarn node -list -all |
/system/yarn-nodes.log |
hdfs dfsadmin -report -live -decommissioning |
/system/hdfs-nodes.log |
hdfs dfs -du -h |
/system/hdfs-du.log |
service --status-all |
/system/service.log |
systemctl --type service |
/system/systemd-services.log |
curl "http://${HOSTNAME}:8088/jmx" |
/metrics/resource_manager_jmx |
curl "http://${HOSTNAME}:8088/ws/v1/cluster/apps" |
/metrics/yarn_app_info |
curl "http://${HOSTNAME}:8088/ws/v1/cluster/nodes" |
/metrics/yarn_node_info |
curl "http://${HOSTNAME}:9870/jmx" |
/metrics/namenode_jmx |
JVM-Informationen
Ausgeführter Befehl | Speicherort im Archiv |
---|---|
jstack -l "${DATAPROC_AGENT_PID}" |
jstack/agent_${DATAPROC_AGENT_PID}.jstack |
jstack -l "${PRESTO_PID}" |
jstack/agent_${PRESTO_PID}.jstack |
jstack -l "${JOB_DRIVER_PID}" |
jstack/driver_${JOB_DRIVER_PID}.jstack |
jinfo "${DATAPROC_AGENT_PID}" |
jinfo/agent_${DATAPROC_AGENT_PID}.jstack |
jinfo "${PRESTO_PID}" |
jinfo/agent_${PRESTO_PID}.jstack |
jinfo "${JOB_DRIVER_PID}" |
jinfo/agent_${JOB_DRIVER_PID}.jstack |
Linux-Systeminformationen
Ausgeführter Befehl | Speicherort im Archiv |
---|---|
df -h |
/system/df.log |
ps aux |
/system/ps.log |
free -m |
/system/free.log |
netstat -anp |
/system/netstat.log |
sysctl -a |
/system/sysctl.log |
uptime |
/system/uptime.log |
cat /proc/sys/fs/file-nr |
/system/fs-file-nr.log |
ping -c 1 |
/system/cluster-ping.log |
Protokolldateien
Enthaltene Elemente | Speicherort im Archiv |
---|---|
Alle Logs in /var/log mit den folgenden Präfixen im Dateinamen:cloud-sql-proxy dataproc druid gcdp google hadoop hdfs hive knox presto spark syslog yarn zookeeper |
Dateien werden im Archivordner logs mit dem Original-Dateinamen gespeichert. |
Start-Logs für jeden einzelnen Dataproc-Knoten (Master und Worker) im Cluster | Dateien werden im Archivordner node_startup abgelegt, der separate Unterordner für jede Maschine im Cluster enthält. |
Component Gateway-Logs von journalctl -u google-dataproc-component-gateway |
/logs/google-dataproc-component-gateway.log |
Konfigurationsdateien
Enthaltene Elemente | Speicherort im Archiv |
---|---|
VM-Metadaten | /conf/dataproc/metadata |
Umgebungsvariablen in /etc/environment |
/conf/dataproc/environment |
Dataproc-Attribute | /conf/dataproc/dataproc.properties |
Alle Dateien in /etc/google-dataproc/ |
/conf/dataproc/ |
Alle Dateien in /etc/hadoop/conf/ |
/conf/hadoop/ |
Alle Dateien in /etc/hive/conf/ |
/conf/hive/ |
Alle Dateien in /etc/hive-hcatalog/conf/ |
/conf/hive-hcatalog/ |
Alle Dateien in /etc/knox/conf/ |
/conf/knox/ |
Alle Dateien in /etc/pig/conf/ |
/conf/pig/ |
Alle Dateien in /etc/presto/conf/ |
/conf/presto/ |
Alle Dateien in /etc/spark/conf/ |
/conf/spark/ |
Alle Dateien in /etc/tez/conf/ |
/conf/tez/ |
Alle Dateien in /etc/zookeeper/conf/ |
/conf/zookeeper/ |