Comando de clusters de diagnóstico do Dataproc

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

Execute o comando gcloud dataproc clusters diagnose para coletar registros do sistema, Spark, Hadoop e 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 solucionar problemas de cluster ou job do Dataproc. O comando faz upload dos dados de diagnóstico e do resumo para o bucket de preparo do Dataproc no Cloud Storage.

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

Execute o comando gcloud dataproc clusters diagnose para criar e enviar 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 coletar essa sinalização para coletar registros de saída do driver do job, do evento do Spark, do aplicativo YARN e do Spark Lense, além dos arquivos de registro padrão, para uma lista especificada separada por vírgulas de IDs de jobs. Para jobs MapReduce, apenas os registros de aplicativos YARN são coletados. A agregação de registros YARN precisa estar ativada para a coleta de registros do aplicativo YARN.

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

    • --start-time com --end-time: use as duas sinalizações para especificar um intervalo de tempo, no formato %Y-%m-%dT%H:%M:%S.%fZ, para a coleta de dados de diagnóstico. Especificar um intervalo de tempo também permite a coleta de registros de escalonamento automático do Dataproc durante esse intervalo. 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 esta sinalização para enviar ou fornecer acesso ao arquivo .tar de diagnóstico para a equipe de suporte do Google Cloud. Também forneça informações para a 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 "diagnose"

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

O comando gcloud dataproc clusters diagnose poderá falhar ou expirar se um cluster estiver em estado de erro e não puder aceitar tarefas de diagnóstico do servidor do Dataproc. Como alternativa à execução do comando diagnose, é possível conectar-se ao nó mestre do cluster usando SSH, fazer o download do script de diagnóstico e executá-lo localmente no nó mestre.

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

O arquivo .tar de arquivamento de diagnóstico é salvo em um diretório local. A resposta ao comando lista o local do arquivo tar com instruções sobre como fazer o upload dele 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 em um test-project:

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

Resumo do diagnóstico e conteúdo do arquivo

O comando diagnose gera um resumo de diagnóstico e um arquivo tar .tar que contém arquivos de configuração de cluster, registros e outros arquivos e informações. O arquivo .tar é 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 fornece uma visão geral do status do cluster, incluindo YARN, HDFS, disco e status de rede, além de avisos para alertar você sobre possíveis problemas.

Arquivo tar do arquivamento:as seções a seguir listam os arquivos e as informações contidos 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 estes prefixos no nome de 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/