Puoi raccogliere i seguenti dati diagnostici per risolvere i problemi relativi a cluster e job:
- Dati di diagnostica del checkpoint: se abilitati al momento della creazione del cluster, Dataproc raccoglie i dati di diagnostica del checkpoint durante il ciclo di vita del cluster.
- Dati diagnostici snapshot: puoi raccogliere uno snapshot una tantum dei dati diagnostici del cluster.
Raccolta dei dati diagnostici del checkpoint
Se abilitata durante la creazione del cluster, Dataproc raccoglie dati diagnostici del checkpoint durante la creazione del cluster, l'aggiornamento del cluster e le operazioni del job Dataproc.
Posizione dei dati del checkpoint
Dataproc salva i dati di diagnostica del checkpoint
nel bucket temporaneo del cluster
in Cloud Storage nella seguente cartella (checkpoint diagnostic data folder
):
gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID
Il bucket temporaneo del cluster predefinito ha un periodo di conservazione TTL di 90 giorni. I dati vengono eliminati al termine del periodo di conservazione. Puoi specificare il tuo bucket temporaneo del cluster con un periodo TTL diverso quando crei un cluster.
Dati diagnostici del checkpoint
Log di dettaglio dei nodi del cluster:Dataproc esegue i seguenti comandi per raccogliere e scrivere le informazioni di YARN e HDFS nelle seguenti posizioni nella cartella dei dati di diagnostica del checkpoint in Cloud Storage.
Comando eseguito Posizione nella cartella di diagnostica yarn node -list -all
.../nodes/timestamp/yarn-nodes.log
hdfs dfsadmin -report -live -decommissioning
.../nodes/timestamp/hdfs-nodes.log
Dettagli job:Dataproc salva le informazioni sui job MapReduce e i log dei job Spark per i job che utilizzano l'API Dataproc Jobs. Questi dati del job vengono raccolti per ogni job MapReduce e Spark inviato.
- MapReduce
job.xml
: un file contenente le impostazioni di configurazione del job, salvato in.../jobs/JOB_UUID/mapreduce/job.xml
. - Log eventi Spark: dettagli di esecuzione del job utili per il debug,
salvati in
.../jobs/JOB_UUID/spark/application-id
.
- MapReduce
Informazioni sul sistema Linux: Dataproc esegue i seguenti comandi per raccogliere e salvare le informazioni di sistema nelle seguenti posizioni nella cartella dei dati di diagnostica del checkpoint in Cloud Storage.
Comando Posizione nella cartella di diagnostica sysctl -a
.../system/sysctl.log
cat /proc/sys/fs/file-nr
.../system/fs-file-nr.log
ping -c 1
.../system/cluster-ping.log
cp /etc/hosts
.../system/hosts_entries.log
cp /etc/resolv.conf
.../system/resolv.conf
File di configurazione:Dataproc salva i seguenti file di configurazione nelle seguenti posizioni nella cartella dei dati di diagnostica del checkpoint in Cloud Storage.
Articoli inclusi Posizione nella cartella di diagnostica Proprietà di Dataproc .../configs/dataproc/dataproc.properties
Tutti i file in
`/etc/google-dataproc/`.../configs/dataproc/
Tutti i file in
`/etc/hadoop/conf/`.../configs/hadoop/
Tutti i file in `/etc/hive/conf/` .../configs/hive/
Tutti i file in
`/etc/hive-hcatalog/conf/`.../configs/hive-hcatalog/
Tutti i file in `/etc/knox/conf/` .../configs/knox/
Tutti i file in `/etc/pig/conf/` .../configs/pig/
Tutti i file in
`/etc/presto/conf/`.../configs/presto/
Tutti i file in
`/etc/spark/conf/`.../configs/spark/
Tutti i file in `/etc/tez/conf/` .../configs/tez/
Tutti i file in
`/etc/zookeeper/conf/`.../configs/zookeeper/
Attivare e condividere i dati diagnostici dei checkpoint
Quando crei un cluster, puoi attivare e condividere i dati diagnostici del checkpoint del cluster con l'assistenza di Google Cloud :
Abilitare la raccolta dei dati dei checkpoint
Aggiungi la
dataproc:diagnostic.capture.enabled=true
proprietà del cluster
quando crei un cluster Dataproc per attivare
la raccolta dei dati diagnostici del checkpoint sul cluster.
Condividere i dati del checkpoint
Se attivi l'accesso uniforme a livello di bucket nel bucket temporaneo del cluster, tutti i contenuti del bucket temporaneo, inclusi i dati diagnostici dei checkpoint raccolti e i dati effimeri, come i file della cronologia dei job MapReduce, i log YARN aggregati e i log eventi Spark, vengono condivisi con Google Cloud support.
Se controllo dell'accesso a livello di oggetto è attivato nel bucket temporaneo del cluster, vengono condivisi solo i dati diagnostici del checkpoint raccolti (dati nella cartella dei dati diagnostici del checkpoint in Cloud Storage).
Puoi attivare la condivisione dei dati diagnostici del checkpoint con l'assistenza Google Cloud quando crei un cluster o dopo la sua creazione:
Abilita la condivisione durante la creazione del cluster: aggiungi la seguente proprietà quando crei un cluster:
dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
Attiva la condivisione dopo la creazione del cluster: puoi attivare la condivisione dei dati dei checkpoint con l'assistenzaGoogle Cloud dopo la creazione del cluster nei seguenti modi:
Fornisci l'accesso in lettura ai dati dei checkpoint all'account di servizio utilizzato dal team di assistenza Google Cloud .
Se l'accesso uniforme a livello di bucket è abilitato nel bucket temporaneo, aggiungi il binding del criterio IAM:
gcloud storage buckets add-iam-policy-binding gs://TEMP_BUCKET \ --member=serviceAccount:cloud-diagnose@cloud-dataproc.iam.gserviceaccount.com \ --role=roles/storage.objectViewer
Se controllo dell'accesso a livello di oggetto è abilitato nel bucket temporaneo, esegui il seguente comando per condividere i dati di diagnostica del checkpoint:
gcloud storage objects update \ gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID \ --add-acl-grant=entity=user-cloud-diagnose@cloud-dataproc.iam.gserviceaccount.com,role=READER --recursive
Raccolta dei dati diagnostici degli snapshot
Puoi eseguire il seguente comando
gcloud dataproc clusters diagnose
per raccogliere uno snapshot dei dati di diagnostica da un
cluster in esecuzione. I dati vengono scritti come file di archivio (tar) nel bucket di staging Dataproc in Cloud Storage.
gcloud dataproc clusters diagnose CLUSTER_NAME \ --region=REGION \ --tarball-access=GOOGLE_DATAPROC_DIAGNOSE
Note:
- CLUSTER_NAME: Il nome del cluster da diagnosticare.
- REGION: la regione del cluster, ad esempio
us-central1
. --tarball-access
=GOOGLE_DATAPROC_DIAGNOSE
Questo flag fornisce l'accesso al file tar di diagnostica all'Google Cloud assistenza. Fornisci Google Cloud assistenza con il percorso Cloud Storage del file tar di diagnostica.Additional flags:
--start-time
con--end-time
: utilizza entrambi i flag per specificare un intervallo di tempo nel 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 dello snapshot diagnostico).Puoi utilizzare uno dei seguenti flag per raccogliere log specifici del driver del job, dell'evento Spark, dell'applicazione YARN e dell'output Sparklens:
--job-ids
: Un elenco separato da virgole di ID job--yarn-application-ids
: un elenco separato da virgole di ID applicazione YARN- L'aggregazione dei log YARN deve essere abilitata (
yarn.log-aggregation-enable=true
) per la raccolta dei log delle applicazioni YARN. - Per i job MapReduce, vengono raccolti solo i log delle applicazioni YARN.
- L'aggregazione dei log YARN deve essere abilitata (
(Facoltativo) Esegui lo script di diagnostica
Il comando gcloud dataproc clusters diagnose
può non riuscire o scadere se un cluster si trova in uno stato di errore e non può accettare attività di diagnostica dal server Dataproc. In alternativa all'esecuzione del comando diagnose, puoi utilizzare SSH per connetterti al cluster, quindi eseguire lo script 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 di diagnostica viene salvato in una directory locale. L'output del comando elenca la posizione del file tar con le istruzioni su come caricare il file tar in un bucket Cloud Storage.
Dati dello snapshot diagnostico
I dati dello snapshot del cluster includono un riepilogo diagnostico e diverse sezioni di archivio.
Riepilogo diagnostico:il file di archivio include summary.txt
che si trova
nella directory principale dell'archivio. Fornisce una panoramica dello stato del cluster, incluso lo stato di YARN, HDFS, disco e rete, e include avvisi per segnalare potenziali problemi.
Sezioni dell'archivio:il file di archivio include le seguenti informazioni che vengono scritte nelle seguenti posizioni del file di archivio.
Informazioni su daemon 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_AGENTPID}"
jstack/agent${DATAPROC_AGENT_PID}.jstack
jstack -l "${PRESTOPID}"
jstack/agent${PRESTO_PID}.jstack
jstack -l "${JOB_DRIVERPID}"
jstack/driver${JOB_DRIVER_PID}.jstack
jinfo "${DATAPROC_AGENTPID}"
jinfo/agent${DATAPROC_AGENT_PID}.jstack
jinfo "${PRESTOPID}"
jinfo/agent${PRESTO_PID}.jstack
jinfo "${JOB_DRIVERPID}"
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
Articolo incluso 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 originali.Log di avvio dei nodi Dataproc per ogni nodo (master e worker) nel 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
Articoli inclusi Posizione nell'archivio Metadati VM /conf/dataproc/metadata
Variabili di ambiente in /etc/environment
/conf/dataproc/environment
Proprietà di 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/
Condividere il file di archivio
Puoi condividere il file di archivio con Google Cloud l'assistenza o gli utenti per ricevere aiuto per risolvere i problemi relativi a cluster o job.
Per condividere il file di archivio:
- Copia il file di archivio da Cloud Storage e poi condividi l'archivio scaricato oppure
Modifica le autorizzazioni dell'archivio per consentire ad altri Google Cloud utenti o progetti di accedere al file.
Esempio: il seguente comando concede le autorizzazioni di lettura all'archivio ai proprietari del progetto
test-project
:gcloud storage objects update PATH_TO_ARCHIVE} --add-acl-grant=entity=project-owners-test-project,role=READER