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:
- Archiv herunterladen aus Cloud Storage aus und geben Sie dann das heruntergeladene Archiv frei.
- Ändern Sie die Berechtigungen im Archiv, um anderen Nutzern oder Projekten von Google Cloud Zugriff auf die Datei zu gewähren.
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/ |