Diagnóstico de clusters do Dataproc

"Resumo do diagnóstico do comando do cluster do Dataproc | Google Cloud"

É possível executar o comando gcloud dataproc clusters diagnose para coletar logs do sistema, do Spark, do Hadoop e do Dataproc, arquivos de configuração de cluster e outras informações que podem ser examinadas ou compartilhadas com o suporte do Google para ajudar a resolver problemas de um cluster ou job do Dataproc. O comando faz o upload dos dados e resumo do diagnóstico para o bucket de preparo do Dataproc no Cloud Storage.

Executar o comando de diagnóstico de cluster da Google Cloud CLI

Execute o comando gcloud dataproc clusters diagnose para criar e exibir o local do arquivo de diagnóstico.

gcloud dataproc clusters diagnose CLUSTER_NAME \
    --region=REGION \
    OPTIONAL FLAGS ...

Observações:

  • CLUSTER_NAME: o nome do cluster a ser diagnosticado.
  • REGION: a região do cluster, por exemplo, us-central1.
  • OPTIONAL FLAGS:

    • --job-ids: é possível usar essa flag para coletar logs de saída do driver de job, evento do Spark, aplicativo YARN e Spark Lense, além dos arquivos de registro padrão, para uma lista especificada de IDs de jobs separada por vírgulas. Para jobs do MapReduce, apenas os registros de aplicativos do YARN são coletados. A agregação de registros do YARN precisa estar ativada para a coleta de registros de aplicativo do YARN.

    • --yarn-application-ids: é possível usar essa flag para coletar logs de saída do driver de job, evento do Spark, aplicativo YARN e Spark Lense, além dos arquivos de registro padrão, para uma lista especificada de IDs de aplicativos YARN separados por vírgulas. A agregação de registros do YARN precisa ser ativada para a coleta de registros de aplicativos do YARN.

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

    • --tarball-access=GOOGLE_DATAPROC_DIAGNOSE Use essa flag para enviar ou fornecer acesso ao arquivo tar de diagnóstico à equipe de Google Cloud support. Também forneça informações à equipe de suporte do Google Cloud da seguinte maneira:

      • Caminho do Cloud Storage do arquivo tar de diagnóstico ou
      • Bucket de configuração do cluster, UUID do cluster e ID da operação do comando de diagnóstico

Execute o script de diagnóstico no nó mestre do cluster (se necessário)

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, é possível se conectar ao nó mestre do cluster usando o SSH, fazer o download do script de diagnóstico e executá-lo 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 do 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 do arquivo tar para um bucket do Cloud Storage.

Como compartilhar dados de diagnóstico

Para compartilhar o arquivo:

Exemplo: o comando a seguir adiciona permissões de leitura ao arquivo para um usuário jane@gmail.com:

gcloud storage objects update PATH_TO_ARCHIVE} --add-acl-grant=entity=user-jane@gmail.com,role=roles/storage.legacyObjectReader

Resumo do diagnóstico e conteúdo do arquivo

O comando diagnose gera um resumo do diagnóstico e um arquivo tar que contém arquivos de configuração do cluster, registros e outros arquivos e informações. O arquivo tar de arquivo é gravado no bucket de preparo do Dataproc no Cloud Storage.

Resumo do diagnóstico:o script de diagnóstico analisa os dados coletados e gera um summary.txt na raiz do arquivo de diagnóstico. O resumo oferece uma visão geral do status do cluster, incluindo o status do YARN, do HDFS, do disco e da rede, além de alertas para alertar sobre possíveis problemas.

Arquivo tar de arquivamento:as seções a seguir listam os arquivos e as informações contidas no arquivo tar de arquivamento de diagnóstico.

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 do JVM

Comando executado Local no arquivo
jstack -l "${DATAPROC_AGENT_PID}" jstack/agent_${DATAPROC_AGENT_PID}.jstack
jstack -l "${PRESTO_PID}" jstack/agent_${PRESTO_PID}.jstack
jstack -l "${JOB_DRIVER_PID}" jstack/driver_${JOB_DRIVER_PID}.jstack
jinfo "${DATAPROC_AGENT_PID}" jinfo/agent_${DATAPROC_AGENT_PID}.jstack
jinfo "${PRESTO_PID}" jinfo/agent_${PRESTO_PID}.jstack
jinfo "${JOB_DRIVER_PID}" 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 registros

Item(ns) incluído(s) 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/