Diagnostica dei cluster Dataproc

"Riepilogo diagnostico dei comandi del cluster Dataproc | Google Cloud"

Puoi eseguire il comando gcloud dataproc clusters diagnose per raccogliere i log di sistema, Spark, Hadoop e Dataproc, i file di configurazione del cluster e altre informazioni che puoi esaminare o condividere con l'Assistenza Google per aiutarti a risolvere i problemi di un cluster o di un job Dataproc. Il comando carica i dati di diagnostica e il riepilogo nel bucket di staging di Dataproc in Cloud Storage.

Esegui il comando diagnose cluster di Google Cloud CLI

Esegui il comando gcloud dataproc clusters diagnose per creare e stampare la posizione del file dell'archivio diagnostico.

gcloud dataproc clusters diagnose CLUSTER_NAME \
    --region=REGION \
    OPTIONAL FLAGS ...

Note:

  • CLUSTER_NAME: il nome del cluster da diagnosticare.
  • REGION: la regione del cluster, ad esempio us-central1.
  • OPTIONAL FLAGS:

    • --job-ids: puoi utilizzare questo flag per raccogliere i log di output del driver dei job, dell'evento Spark, dell'applicazione YARN e di Spark Lense, oltre ai file di log predefiniti, per un elenco specificato di ID job separati da virgole. Per i job MapReduce, vengono raccolti solo i log delle applicazioni YARN. L'aggregazione dei log YARN deve essere abilitata per la raccolta dei log dell'applicazione YARN.

    • --yarn-application-ids: puoi utilizzare questo flag per raccogliere i log di output del driver di job, dell'evento Spark, dell'applicazione YARN e di Spark Lense, oltre ai file di log predefiniti, per un elenco specificato di ID applicazione YARN separati da virgole. L'aggregazione dei log YARN deve essere abilitata per la raccolta dei log delle applicazioni YARN.

    • --start-time con --end-time: utilizza entrambi i flag per specificare un intervallo di tempo, in formato %Y-%m-%dT%H:%M:%S.%fZ, per la raccolta dei dati diagnostici. La specifica di un intervallo di tempo consente anche la raccolta dei log di scalabilità automatica di Dataproc durante l'intervallo di tempo (per impostazione predefinita, i log di scalabilità automatica di Dataproc non vengono raccolti nei dati di diagnostica).

    • --tarball-access=GOOGLE_DATAPROC_DIAGNOSE Utilizza questo flag per inviare o fornire accesso al file tar di diagnostica al team dell'assistenza Google Cloud. Fornisci inoltre le seguenti informazioni al team di assistenza Google Cloud:

      • Percorso di Cloud Storage del file tar di diagnostica o
      • Bucket di configurazione del cluster, UUID del cluster e ID operazione del comando diagnose

Esegui lo script di diagnostica dal nodo master del cluster (se necessario)

Il comando gcloud dataproc clusters diagnose può non riuscire o scadere se un cluster è in uno stato di errore e non può accettare attività di diagnostica dal server Dataproc. In alternativa all'esecuzione del comando diagnose, puoi connetterti al nodo master del cluster tramite SSH, scaricare lo script di diagnostica ed eseguirlo localmente sul nodo master.

gcloud compute ssh HOSTNAME
gcloud storage cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh

Il file tar dell'archivio diagnostico viene salvato in una directory locale. L'output del comando elenca la posizione del file tar con le istruzioni su come caricarlo in un bucket Cloud Storage.

Come condividere i dati diagnostici

Per condividere l'archivio:

Esempio: il seguente comando aggiunge le autorizzazioni di lettura all'archivio per un utente jane@gmail.com:

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

Riepilogo della diagnostica e contenuti dell'archivio

Il comando diagnose genera un riepilogo diagnostico e un file tar dell'archivio contenente file di configurazione del cluster, log e altri file e informazioni. Il file tar dell'archivio viene scritto nel bucket di staging Dataproc in Cloud Storage.

Riepilogo della diagnostica:lo script di diagnostica analizza i dati raccolti e genera un file summary.txt nella directory principale dell'archivio diagnostico. Il riepilogo fornisce una panoramica dello stato del cluster, tra cui lo stato di YARN, HDFS, del disco e della rete, e include avvisi per segnalare potenziali problemi.

File tar dell'archivio:le sezioni seguenti elencano i file e le informazioni contenuti nel file tar dell'archivio diagnostico.

Informazioni su demoni e servizi

Comando eseguito Posizione nell'archivio
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

Informazioni sulla JVM

Comando eseguito Posizione nell'archivio
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

Informazioni sul sistema Linux

Comando eseguito Posizione nell'archivio
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

File di log

Elementi inclusi Posizione nell'archivio
Tutti i log in /var/log con i seguenti prefissi nel nome file:
cloud-sql-proxy
dataproc
druid
gcdp
google
hadoop
hdfs
hive
knox
presto
spark
syslog
yarn
zookeeper
I file vengono inseriti nella cartella dell'archivio logs e mantengono i nomi file originali.
Log di avvio dei nodi Dataproc per ogni nodo (master e worker) del cluster. I file vengono inseriti nella cartella dell'archivio node_startup, che contiene sottocartelle separate per ogni macchina del cluster.
Log del gateway dei componenti da journalctl -u google-dataproc-component-gateway /logs/google-dataproc-component-gateway.log

File di configurazione

Elementi inclusi Posizione nell'archivio
Metadati VM /conf/dataproc/metadata
Variabili di ambiente in /etc/environment /conf/dataproc/environment
Proprietà Dataproc /conf/dataproc/dataproc.properties
Tutti i file in /etc/google-dataproc/ /conf/dataproc/
Tutti i file in /etc/hadoop/conf/ /conf/hadoop/
Tutti i file in /etc/hive/conf/ /conf/hive/
Tutti i file in /etc/hive-hcatalog/conf/ /conf/hive-hcatalog/
Tutti i file in /etc/knox/conf/ /conf/knox/
Tutti i file in /etc/pig/conf/ /conf/pig/
Tutti i file in /etc/presto/conf/ /conf/presto/
Tutti i file in /etc/spark/conf/ /conf/spark/
Tutti i file in /etc/tez/conf/ /conf/tez/
Tutti i file in /etc/zookeeper/conf/ /conf/zookeeper/