Dataproc-Cluster diagnostizieren

Diagnosezusammenfassung für Dataproc Cluster-Befehl | Google Cloud“

Sie können den Befehl gcloud dataproc clusters diagnose ausführen, um System-, Spark-, Hadoop- und Dataproc-Protokolle, Clusterkonfigurationsdateien und andere Informationen zu erfassen, die Sie prüfen oder mit dem Google-Support teilen können, um Fehler bei einem Dataproc-Cluster oder -Job zu beheben. Der Befehl lädt die Diagnosedaten und die Zusammenfassung hoch. durch den Dataproc-Staging-Bucket in Cloud Storage.

Google Cloud CLI-Befehl „diagnose cluster“ ausführen

Führen Sie den gcloud dataproc clusters diagnose aus. zum Erstellen und Ausgeben des Speicherorts der Diagnosearchivdatei.

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 den Jobtreiber, das Spark-Ereignis und YARN erfassen. und Spark Lense-Ausgabe-Logs, zusätzlich zu den Standardlogdateien für eine angegebene, durch Kommas getrennte Liste von Job-IDs. Für MapReduce-Jobs werden nur YARN-Anwendungslogs erfasst. Die YARN-Log-Aggregation muss aktiviert sein, damit YARN-Anwendungslogs erfasst werden können.

    • --yarn-application-ids: Mit diesem Flag können Sie zusätzlich zu den Standard-Logdateien Job-Treiber-, Spark-Ereignis-, YARN-Anwendungs- und Spark Lense-Ausgabeprotokolle für eine angegebene durch Kommas getrennte Liste von YARN-Anwendungs-IDs erfassen. Die YARN-Log-Aggregation muss aktiviert sein, damit YARN-Anwendungslogs erfasst werden können.

    • --start-time mit --end-time: Verwenden Sie beide Flags, um einen Zeitraum im %Y-%m-%dT%H:%M:%S.%fZ-Format für die Erfassung von Diagnosedaten anzugeben. Wenn Sie einen Zeitraum angeben, werden auch Dataproc-Autoscaling-Protokolle in diesem Zeitraum erfasst. Standardmäßig werden Dataproc-Autoscaling-Protokolle nicht in den Diagnosedaten erfasst.

    • --tarball-access=GOOGLE_DATAPROC_DIAGNOSE Mit diesem Flag können Sie die Diagnose-Tar-Datei an das Google Cloud-Supportteam senden oder ihm Zugriff darauf gewähren. Stellen Sie dem Google Cloud-Supportteam außerdem folgende Informationen zur Verfügung:

      • Cloud Storage-Pfad der TAR-Diagnosedatei oder
      • Clusterkonfigurations-Bucket, Cluster-UUID und Vorgangs-ID von den Befehl „diagnose“

Diagnoseskript über den Masterknoten des Clusters ausführen (falls erforderlich)

Der Befehl gcloud dataproc clusters diagnose kann fehlschlagen oder zu einer Zeitüberschreitung führen, wenn ein Cluster befindet sich im Fehlerstatus und akzeptiert keine Diagnoseaufgaben von dem Dataproc-Server. Als Alternative zum Ausführen des diagnose verwenden, können Sie stellen Sie über SSH eine Verbindung zum Cluster-Master-Knoten her, Laden Sie das Diagnoseskript herunter und führen Sie es lokal auf dem Masterknoten aus.

gcloud compute ssh HOSTNAME
gcloud storage 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 einer Anleitung zum Hochladen der TAR-Datei in einen Cloud Storage-Bucket aufgeführt.

Diagnosedaten teilen

So geben Sie das Archiv frei:

Beispiel: Mit dem folgenden Befehl werden dem Archiv Leseberechtigungen hinzugefügt für den Nutzer jane@gmail.com:

gcloud storage objects update PATH_TO_ARCHIVE} --add-acl-grant=entity=user-jane@gmail.com,role=roles/storage.legacyObjectReader

Diagnosezusammenfassung und Archivinhalte

Der Befehl diagnose gibt eine Diagnoseübersicht und eine TAR-Archivdatei aus, die Clusterkonfigurationsdateien, Protokolle und andere Dateien und Informationen enthält. Das Archiv tar-Datei in Dataproc geschrieben Staging-Bucket in Cloud Storage.

Diagnoseübersicht: Das Diagnoseskript analysiert die erfassten Daten und generiert eine summary.txt im Stammverzeichnis des Diagnosearchivs. Die Zusammenfassung enthält Übersicht über den Clusterstatus, einschließlich YARN, HDFS, Laufwerk und Netzwerk und enthält Warnungen, die Sie auf potenzielle Probleme hinweisen.

Archiv-Tar-Datei: In den folgenden Abschnitten sind die Dateien und Informationen aufgeführt, die in der Archiv-Tar-Datei 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 Protokolle in /var/log mit 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/