Conferir os dados de diagnóstico do cluster do Dataproc

"Ver dados de diagnóstico do cluster do Dataproc"

O Dataproc coleta os seguintes dados de diagnóstico do cluster para ajudar você a resolver problemas de cluster e job:

Dados de checkpoint

Quando o recurso de dados de ponto de verificação está ativado, o Dataproc coleta dados de diagnóstico durante a criação e atualização de clusters e as operações da API Jobs do Dataproc. O Dataproc salva os dados no cluster temp bucket no Cloud Storage, que tem um período de armazenamento de TTL de 90 dias. Os dados são excluídos ao final do período de armazenamento.

Ativar propriedades de coleta de dados: é possível incluir as seguintes propriedades opcionais do cluster ao criar um cluster. Elas afetam apenas a coleta de dados de diagnóstico de ponto de verificação no cluster criado.

  • Ative a coleta de dados:definir a propriedade dataproc:diagnostic.capture.enabled=true permite a coleta de dados de diagnóstico de checkpoint no cluster.
  • Compartilhar dados de diagnóstico:ao definir a propriedade dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE, você compartilha os dados de diagnóstico do ponto de verificação coletados com o suporte doGoogle Cloud .
    • Após a criação do cluster, você pode compartilhar os dados de diagnóstico com o suporte, concedendo acesso de leitura aos dados para a conta de serviço usada pelo suporte, da seguinte forma:
      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 \
      

Dados de diagnóstico

Os dados de diagnóstico consistem nas seguintes informações gravadas em gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID/ no Cloud Storage. Nesta seção, esse local é chamado de pasta de dados de diagnóstico.

  • Registros detalhados do nó do cluster:o Dataproc executa os seguintes comandos para coletar e gravar informações do YARN e do HDFS nos seguintes locais na pasta de dados de diagnóstico no Cloud Storage.

    Comando executado Localização na pasta de diagnóstico
    yarn node -list -all .../nodes/timestamp/yarn-nodes.log
    hdfs dfsadmin -report -live -decommissioning .../nodes/timestamp/hdfs-nodes.log

  • Detalhes do job:o Dataproc salva informações de jobs do MapReduce e registros de jobs do Spark para jobs que usam a API Dataproc Jobs. Esses dados são coletados para cada job do MR e do Spark enviado.

    • MapReduce job.xml: um arquivo que contém configurações de configuração de job, salvo em .../jobs/JOB_UUID/mapreduce/job.xml.
    • Registros de eventos do Spark: detalhes da execução do job úteis para depuração, salvos em .../jobs/JOB_UUID/spark/application-id.
  • Informações do sistema Linux:o Dataproc executa os seguintes comandos para coletar e salvar informações do sistema nos seguintes locais na pasta de dados de diagnóstico no Cloud Storage.

    Comando Localização na pasta de diagnóstico
    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
  • Arquivos de configuração:o Dataproc salva os seguintes arquivos de configuração nos locais a seguir na pasta de dados de diagnóstico no Cloud Storage.

    Item(ns) incluído(s) Localização na pasta de diagnóstico
    Propriedades do Dataproc .../configs/dataproc/dataproc.properties
    Todos os arquivos em
    `/etc/google-dataproc/`
    .../configs/dataproc/
    Todos os arquivos em
    `/etc/hadoop/conf/`
    .../configs/hadoop/
    Todos os arquivos em `/etc/hive/conf/` .../configs/hive/
    Todos os arquivos em
    `/etc/hive-hcatalog/conf/`
    .../configs/hive-hcatalog/
    Todos os arquivos em `/etc/knox/conf/` .../configs/knox/
    Todos os arquivos em `/etc/pig/conf/` .../configs/pig/
    Todos os arquivos em
    `/etc/presto/conf/`
    .../configs/presto/
    Todos os arquivos em
    `/etc/spark/conf/`
    .../configs/spark/
    Todos os arquivos em `/etc/tez/conf/` .../configs/tez/
    Todos os arquivos em
    `/etc/zookeeper/conf/`
    .../configs/zookeeper/

Dados de snapshot

É possível executar o seguinte comando gcloud dataproc clusters diagnose para coletar um snapshot de dados de diagnóstico de um cluster em execução. Os dados são gravados como um arquivo de arquivamento (tar) no bucket de preparo do Dataproc no Cloud Storage.

gcloud dataproc clusters diagnose CLUSTER_NAME \
    --region=REGION \
    --tarball-access=GOOGLE_DATAPROC_DIAGNOSE

Observações:

  • CLUSTER_NAME: o nome do cluster a ser diagnosticado.
  • REGION: a região do cluster, por exemplo, us-central1.
  • --tarball-access=GOOGLE_DATAPROC_DIAGNOSE Essa flag fornece acesso ao arquivo tar de diagnóstico para Google Cloud suporte. Forneça Google Cloud suporte com o caminho do Cloud Storage do arquivo tar de diagnóstico.

  • Additional flags:

    • --start-time com --end-time: use as duas flags para especificar um período no formato %Y-%m-%dT%H:%M:%S.%fZ para a coleta de dados de diagnóstico. Ao especificar um período, também é possível coletar registros de escalonamento automático do Dataproc durante esse período. Por padrão, esses registros não são coletados nos dados do snapshot de diagnóstico.

    • Use uma ou ambas as flags a seguir para coletar registros específicos de driver de job, evento do Spark, aplicativo YARN e saída do Sparklens:

      • --job-ids: uma lista separada por vírgulas de IDs de jobs
      • --yarn-application-ids: uma lista separada por vírgulas de IDs de aplicativos YARN

        • A agregação de registros do YARN precisa estar ativada (yarn.log-aggregation-enable=true) para a coleta de registros de aplicativos do YARN.
        • Para jobs do MapReduce, somente os registros de aplicativos do YARN são coletados.

Se necessário, execute o script de diagnóstico

O comando gcloud dataproc clusters diagnose pode falhar ou expirar se um cluster estiver em um estado de erro e não puder aceitar tarefas de diagnóstico do servidor do Dataproc. Como alternativa à execução do comando de diagnóstico, você pode usar o SSH para se conectar ao nó mestre do cluster, fazer o download do script de diagnóstico e executar o script localmente no nó mestre.

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

O arquivo tar de diagnóstico é salvo em um diretório local. A saída do comando lista o local do arquivo tar com instruções sobre como fazer upload dele para um bucket do Cloud Storage.

Dados de instantâneo de diagnóstico

Os dados do snapshot do cluster incluem um resumo de diagnóstico e várias seções de arquivo.

Resumo do diagnóstico:o arquivo de arquivamento inclui summary.txt na raiz do arquivo. Ele fornece uma visão geral do status do cluster, incluindo YARN, HDFS, disco e status de rede, e inclui avisos para alertar sobre possíveis problemas.

Seções do arquivo:o arquivo inclui as seguintes informações que são gravadas nos seguintes locais do arquivo.

  • Informações sobre Daemons e serviços

    Comando executado Local no arquivo
    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

  • Informações da JVM

    Comando executado Local no arquivo
    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

  • Informações do sistema Linux

    Comando executado Local no arquivo
    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

  • Arquivos de registro

    Item incluído Local no arquivo
    Todos os registros em /var/log com os seguintes prefixos no nome do arquivo:
    cloud-sql-proxy
    dataproc
    druid
    gcdp
    google
    hadoop
    hdfs
    hive
    knox
    presto
    spark
    syslog
    yarn
    zookeeper
    Os arquivos são armazenados na pasta logs e mantêm os nomes originais deles.
    Registros de inicialização de node do Dataproc de cada node (principal e de trabalho) no cluster. Os arquivos são colocados na pasta de arquivamento node_startup, que contém subpastas separadas para cada máquina no cluster.
    Registros de gateway de componentes de journalctl -u google-dataproc-component-gateway /logs/google-dataproc-component-gateway.log

  • Arquivos de configuração

    Item(ns) incluído(s) Local no arquivo
    Metadados da VM /conf/dataproc/metadata
    Variáveis de ambiente em /etc/environment /conf/dataproc/environment
    Propriedades do Dataproc /conf/dataproc/dataproc.properties
    Todos os arquivos em /etc/google-dataproc/ /conf/dataproc/
    Todos os arquivos em /etc/hadoop/conf/ /conf/hadoop/
    Todos os arquivos em /etc/hive/conf/ /conf/hive/
    Todos os arquivos em /etc/hive-hcatalog/conf/ /conf/hive-hcatalog/
    Todos os arquivos em /etc/knox/conf/ /conf/knox/
    Todos os arquivos em /etc/pig/conf/ /conf/pig/
    Todos os arquivos em /etc/presto/conf/ /conf/presto/
    Todos os arquivos em /etc/spark/conf/ /conf/spark/
    Todos os arquivos em /etc/tez/conf/ /conf/tez/
    Todos os arquivos em /etc/zookeeper/conf/ /conf/zookeeper/

Compartilhar o arquivo compactado

Você pode compartilhar o arquivo com o suporte do Google Cloud ou com usuários para receber ajuda para resolver problemas de cluster ou de job.

Para compartilhar o arquivo compactado:

  • Copie o arquivo compactado do Cloud Storage e compartilhe o arquivo baixado ou
  • Altere as permissões no arquivo para permitir que outros usuários ou projetos do Google Cloud acessem o arquivo.

    Exemplo: o comando a seguir concede permissões de leitura do arquivo aos proprietários do projeto test-project:

    gcloud storage objects update PATH_TO_ARCHIVE} --add-acl-grant=entity=project-owners-test-project,role=READER