Dataproc-Diagnosecluster-Befehl

„Diagnosezusammenfassung des Dataproc-Clusters | Google Cloud“

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:

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/