Recolha de dados de diagnóstico do cluster do Dataproc

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

Pode recolher os seguintes dados de diagnóstico para ajudar a resolver problemas de clusters e tarefas:

Recolha de dados de diagnóstico de pontos de verificação

Se estiver ativada na criação do cluster, o Dataproc recolhe dados de diagnóstico de pontos de verificação durante as operações de criação do cluster, atualização do cluster e tarefa do Dataproc.

Localização dos dados do posto de controlo

O Dataproc guarda dados de diagnóstico de pontos de verificação no contentor temporário no Cloud Storage na seguinte pasta (checkpoint diagnostic data folder):

gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID 

O contentor temporário de cluster predefinido tem um período de retenção de TTL de 90 dias. Os dados são eliminados no final do período de retenção. Pode especificar o seu próprio intervalo de tempo temporário do cluster com um período de TTL diferente quando cria um cluster.

Dados de diagnóstico do ponto de restauro

  • Registos detalhados dos nós do cluster: o Dataproc executa os seguintes comandos para recolher e escrever informações do YARN e do HDFS nas seguintes localizações na pasta de dados de diagnóstico de pontos de verificação 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 da tarefa: o Dataproc guarda informações sobre tarefas MapReduce e registos de tarefas Spark para tarefas que usam a API Dataproc Jobs. Estes dados de tarefas são recolhidos para cada tarefa MapReduce e Spark enviada.

    • MapReduce job.xml: um ficheiro que contém definições de configuração de tarefas, guardado em .../jobs/JOB_UUID/mapreduce/job.xml.
    • Registos de eventos do Spark: detalhes de execução de tarefas úteis para a depuração, guardados em .../jobs/JOB_UUID/spark/application-id.
  • Informações do sistema Linux: o Dataproc executa os seguintes comandos para recolher e guardar informações do sistema nas seguintes localizações na pasta de dados de diagnóstico de pontos de verificação no Cloud Storage.

    Command Localização na pasta de diagnósticos
    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
  • Ficheiros de configuração: o Dataproc guarda os seguintes ficheiros de configuração nas seguintes localizações na pasta de dados de diagnóstico de pontos de verificação no Cloud Storage.

    Itens incluídos Localização na pasta de diagnósticos
    Propriedades do Dataproc .../configs/dataproc/dataproc.properties
    Todos os ficheiros em
    `/etc/google-dataproc/`
    .../configs/dataproc/
    Todos os ficheiros em
    `/etc/hadoop/conf/`
    .../configs/hadoop/
    Todos os ficheiros em `/etc/hive/conf/` .../configs/hive/
    Todos os ficheiros em
    `/etc/hive-hcatalog/conf/`
    .../configs/hive-hcatalog/
    Todos os ficheiros em `/etc/knox/conf/` .../configs/knox/
    Todos os ficheiros em `/etc/pig/conf/` .../configs/pig/
    Todos os ficheiros em
    `/etc/presto/conf/`
    .../configs/presto/
    Todos os ficheiros em
    `/etc/spark/conf/`
    .../configs/spark/
    Todos os ficheiros em `/etc/tez/conf/` .../configs/tez/
    Todos os ficheiros em
    `/etc/zookeeper/conf/`
    .../configs/zookeeper/

Ative e partilhe dados de diagnóstico de pontos de verificação

Quando cria um cluster, pode ativar e partilhar dados de diagnóstico de pontos de verificação de clusters com o Google Cloud apoio técnico:

Ative a recolha de dados de pontos de verificação

Adicione a dataproc:diagnostic.capture.enabled=true propriedade do cluster quando criar um cluster do Dataproc para ativar a recolha de dados de diagnóstico de pontos de verificação no cluster.

Partilhe dados de pontos de controlo

Se ativar o acesso uniforme ao nível do contentor no contentor temporário do cluster, todo o conteúdo do contentor temporário, incluindo os dados de diagnóstico de pontos de verificação recolhidos e os dados efémeros, como ficheiros do histórico de tarefas do MapReduce, registos do YARN agregados e registos de eventos do Spark, é partilhado com oGoogle Cloud apoio técnico.

Se o controlo de acesso ao nível do objeto estiver ativado no contentor temporário do cluster, apenas são partilhados os dados de diagnóstico de pontos de verificação recolhidos (dados na pasta de dados de diagnóstico de pontos de verificação no Cloud Storage).

Pode ativar a partilha de dados de diagnóstico de pontos de verificação com o Google Cloud apoio técnico quando cria um cluster ou após a criação do cluster:

  • Ativar partilha na criação do cluster: adicione a seguinte propriedade quando criar um cluster:

    dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
    
  • Ativar partilha após a criação do cluster: pode ativar a partilha de dados de pontos de verificação com o Google Cloud apoio técnico após a criação do cluster das seguintes formas:

    • Conceda acesso de leitura aos dados de pontos de verificação à conta de serviço usada pelo Google Cloud apoio técnico.

      • Se o acesso uniforme ao nível do contentor estiver ativado no contentor temporário, adicione a associação da política de 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 o controlo de acesso ao nível do objeto estiver ativado no contentor temporário, execute o seguinte comando para partilhar os dados de diagnóstico do ponto de verificação:

        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
        

Recolha de dados de diagnóstico de instantâneos

Pode executar o seguinte comando gcloud dataproc clusters diagnose para recolher uma imagem instantânea dos dados de diagnóstico de um cluster em execução. Os dados são escritos como um ficheiro de arquivo (tar) no segmento de preparação do Dataproc no Cloud Storage.

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

Notas:

  • CLUSTER_NAME: o nome do cluster a diagnosticar.
  • REGION: a região do cluster, por exemplo, us-central1.
  • --tarball-access=GOOGLE_DATAPROC_DIAGNOSE Esta flag dá acesso ao ficheiro tar de diagnóstico para Google Cloud apoio técnico. Forneça Google Cloud apoio técnico com o caminho do Cloud Storage do ficheiro TAR de diagnóstico.

  • Additional flags:

    • --start-time com --end-time: use ambas as flags para especificar um intervalo de tempo no formato %Y-%m-%dT%H:%M:%S.%fZ para a recolha de dados de diagnóstico. A especificação de um intervalo de tempo também permite a recolha de registos de dimensionamento automático do Dataproc durante o intervalo de tempo (por predefinição, os registos de dimensionamento automático do Dataproc não são recolhidos nos dados da captura instantânea de diagnóstico).

    • Pode usar qualquer uma das seguintes flags para recolher registos de saída específicos do controlador de tarefas, do evento Spark, da aplicação YARN e do Sparklens:

      • --job-ids: uma lista de IDs de tarefas separada por vírgulas
      • --yarn-application-ids: uma lista separada por vírgulas de IDs de aplicações YARN

        • A agregação de registos do YARN tem de estar ativada (yarn.log-aggregation-enable=true) para a recolha de registos de aplicações do YARN.
        • Para tarefas MapReduce, apenas são recolhidos registos de aplicações YARN.

Opcional: execute o guião de diagnóstico

O comando gcloud dataproc clusters diagnose pode falhar ou exceder o tempo limite se um cluster estiver num estado de erro e não puder aceitar tarefas de diagnóstico do servidor Dataproc. Em alternativa à execução do comando diagnose, pode usar o SSH para se ligar ao cluster e, em seguida, executar o script localmente no nó principal.

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

O ficheiro tar do arquivo de diagnóstico é guardado num diretório local. A saída do comando lista a localização do ficheiro TAR com instruções sobre como carregar o ficheiro TAR para um contentor do Cloud Storage.

Dados de instantâneos de diagnóstico

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

Resumo do diagnóstico: o ficheiro de arquivo inclui summary.txt que está na raiz do arquivo. Fornece uma vista geral do estado do cluster, incluindo o estado do YARN, HDFS, disco e rede, e inclui avisos para alertar para potenciais problemas.

Secções do arquivo: o ficheiro de arquivo inclui as seguintes informações que são escritas nas seguintes localizações do ficheiro de arquivo.

  • Informações sobre serviços e daemons

    Comando executado Localização 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 Localização 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 Localização 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

  • Ficheiros de registo

    Item incluído Localização no arquivo
    Todos os registos em /var/log com os seguintes prefixos no nome do ficheiro:
    cloud-sql-proxy
    dataproc
    druid
    gcdp
    google
    hadoop
    hdfs
    hive
    knox
    presto
    spark
    syslog
    yarn
    zookeeper
    Os ficheiros são colocados na pasta logs do arquivo e mantêm os nomes de ficheiros originais.
    Registos de arranque dos nós do Dataproc para cada nó (principal e de trabalho) no seu cluster. Os ficheiros são colocados na pasta node_startup do arquivo, que contém subpastas separadas para cada máquina no cluster.
    Registos do gateway de componentes de journalctl -u google-dataproc-component-gateway /logs/google-dataproc-component-gateway.log

  • Ficheiros de configuração

    Artigos incluídos Localização 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 ficheiros em /etc/google-dataproc/ /conf/dataproc/
    Todos os ficheiros em /etc/hadoop/conf/ /conf/hadoop/
    Todos os ficheiros em /etc/hive/conf/ /conf/hive/
    Todos os ficheiros em /etc/hive-hcatalog/conf/ /conf/hive-hcatalog/
    Todos os ficheiros em /etc/knox/conf/ /conf/knox/
    Todos os ficheiros em /etc/pig/conf/ /conf/pig/
    Todos os ficheiros em /etc/presto/conf/ /conf/presto/
    Todos os ficheiros em /etc/spark/conf/ /conf/spark/
    Todos os ficheiros em /etc/tez/conf/ /conf/tez/
    Todos os ficheiros em /etc/zookeeper/conf/ /conf/zookeeper/

Partilhe o ficheiro de arquivo

Pode partilhar o ficheiro de arquivo com o Google Cloud apoio técnico ou os utilizadores para receber ajuda na resolução de problemas de clusters ou tarefas.

Para partilhar o ficheiro de arquivo:

  • Copiar o ficheiro de arquivo do Cloud Storage e, em seguida, partilhar o arquivo transferido, ou
  • Altere as autorizações no arquivo para permitir que outros Google Cloud utilizadores ou projetos acedam ao ficheiro.

    Exemplo: o comando seguinte concede autorizações de leitura ao 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