Visualizzare i dati di diagnostica del cluster Dataproc

"Visualizza i dati di diagnostica del cluster Dataproc"

Dataproc raccoglie i seguenti dati diagnostici del cluster per aiutarti a risolvere i problemi relativi a cluster e job:

Dati del checkpoint

Quando la funzionalità dei dati dei checkpoint è abilitata, Dataproc raccoglie dati di diagnostica durante la creazione del cluster, l'aggiornamento del cluster, e le operazioni dell'API Jobs Dataproc. Dataproc salva i dati nel cluster temp bucket in Cloud Storage, che ha un periodo di conservazione TTL di 90 giorni. I dati vengono eliminati al termine del periodo di conservazione.

Attiva le proprietà di raccolta dei dati: puoi includere le seguenti proprietà facoltative del cluster quando crei un cluster. Incidono solo sulla raccolta dei dati diagnostici dei checkpoint nel cluster creato.

  • Attiva la raccolta dei dati:l'impostazione della proprietà dataproc:diagnostic.capture.enabled=true consente la raccolta dei dati di diagnostica dei checkpoint nel cluster.
  • Condividi dati diagnostici: l'impostazione della proprietà dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE condivide i dati diagnostici dei checkpoint raccolti con l'assistenzaGoogle Cloud .
    • Dopo aver creato il cluster, puoi condividere i dati di diagnostica con l' Google Cloud assistenza concedendo l'accesso in lettura ai dati all'account di servizio utilizzato dall' Google Cloud assistenza, come segue: Google Cloud
      gsutil -m acl ch -r -u \
          cloud-diagnose@cloud-dataproc.iam.gserviceaccount.com:R \
          gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID
      

Dati diagnostici

I dati di diagnostica sono costituiti dai seguenti dati scritti in gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID/ in Cloud Storage. In questa sezione, questa posizione è indicata come cartella dei dati diagnostici.

  • Log dettagliati dei nodi del cluster: Dataproc esegue i seguenti comandi per raccogliere e scrivere le informazioni di YARN e HDFS nelle seguenti posizioni della cartella dei dati di diagnostica 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 dei job vengono raccolti per ogni job MR 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 dei job utili per il debug, salvati in .../jobs/JOB_UUID/spark/application-id.
  • Informazioni di sistema Linux: Dataproc esegue i seguenti comandi per raccogliere e salvare le informazioni di sistema nelle seguenti posizioni della cartella dei dati di diagnostica in Cloud Storage.

    Comando Posizione nella cartella 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 in Cloud Storage.

    Elementi inclusi Posizione nella cartella Diagnostica
    Proprietà 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/

Dati snapshot

Puoi eseguire il seguente gcloud dataproc clusters diagnose comando 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.
  • OPTIONAL FLAGS:

    • Puoi utilizzare uno o entrambi i seguenti flag per raccogliere log specifici relativi a driver di job, eventi Spark, applicazioni YARN e output di Sparklens. Note:

      • 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.

        • --job-ids: un elenco separato da virgole di ID job.

        • --yarn-application-ids: un elenco di ID applicazione YARN separati da virgole.

    • --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 dello snapshot diagnostico).

    • --tarball-access=GOOGLE_DATAPROC_DIAGNOSE Utilizza questo flag per inviare o fornire l'accesso al file tar di diagnostica all'Google Cloud assistenza. Fornisci anche le informazioni all' Google Cloud assistenza come segue:

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

Se necessario, esegui lo script di diagnostica

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

gcloud compute ssh HOSTNAME
gsutil 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.

Dati degli snapshot diagnostici

I dati dell'istantanea del cluster includono un riepilogo diagnostico e diverse sezioni di archivio.

Riepilogo diagnostico: il file dell'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, del disco e della rete, e include avvisi per informarti di potenziali problemi.

Sezioni dell'archivio:il file dell'archivio include le seguenti informazioni, che vengono scritte nelle seguenti posizioni del file dell'archivio.

  • 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_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

  • File di 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 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/

Condividere il file dell'archivio

Puoi condividere il file dell'archivio con Google Cloud l'assistenza o con gli utenti per ricevere aiuto per la risoluzione dei problemi relativi a cluster o job.

Per condividere il file dell'archivio:

  • Copia il file dell'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 aggiunge le autorizzazioni di lettura all'archivio in un test-project:

    gsutil -m acl ch -g test-project:R PATH_TO_ARCHIVE}