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 registros do sistema, Spark, Hadoop e Dataproc, arquivos de configuração de cluster e outras informações que você pode examinar ou compartilhar com o Suporte do Google para solucionar 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.

Execute o comando de diagnóstico do cluster da Google Cloud CLI

Execute o gcloud dataproc clusters diagnose. para criar e gerar 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: esta sinalização pode ser usada para coletar o driver do job, o evento do Spark, o YARN do aplicativo e registros de saída do Spark Lense, além dos arquivos de registro padrão, para uma lista separada por vírgulas especificada de IDs de jobs. Para jobs MapReduce, apenas os registros do aplicativo YARN são coletados. A agregação de registros YARN precisa estar ativada para a coleção do aplicativo YARN ou de sistemas operacionais de contêineres.

    • --yarn-application-ids: esta flag pode ser usada para coletar o driver do job, o evento do Spark, do aplicativo YARN e dos registros de saída do Spark Lense, além dos arquivos de registro padrão, para uma lista separada por vírgulas especificada de YARN IDs de aplicativos. A agregação de registros YARN precisa estar ativada para a coleção de registros do aplicativo YARN.

    • --start-time com --end-time: use as duas sinalizações para especificar um horário. intervalo, no formato %Y-%m-%dT%H:%M:%S.%fZ, para a coleção 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 esta sinalização para enviar ou conceder acesso ao arquivo .tar de diagnóstico Equipe de suporte do Google Cloud. 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 de o comando Diagnosticar,

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 está em estado de erro e não pode aceitar tarefas de diagnóstico no servidor Dataproc. Como alternativa à execução do comando de diagnóstico, você pode 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. O comando A saída lista a localização do arquivo .tar com instruções sobre como fazer 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. 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 de diagnóstico e um arquivo .tar que contém arquivos de configuração do cluster, registros e outros arquivos e informações. O arquivo é gravado no Dataproc bucket de preparo no Cloud Storage.

Resumo do diagnóstico:o script de diagnóstico analisa os dados coletados e gera uma summary.txt na raiz do arquivo de diagnóstico. O resumo oferece Visão geral do status do cluster, incluindo YARN, HDFS, disco e rede status e inclui avisos para alertá-lo 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/