Raccolta dei dati diagnostici del cluster Dataproc

"Visualizza i dati diagnostici del cluster Dataproc"

Puoi raccogliere i seguenti dati diagnostici per risolvere i problemi relativi a cluster e job:

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

(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

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