Consultar as informações de registro e configuração pode ser útil para solucionar problemas de
cluster ou job. Há muitos arquivos de registro e configuração, e
a coleta de cada um deles para investigação consome muito tempo. Para solucionar esse problema, os clusters do Dataproc são compatíveis com um comando diagnose
especial por meio da CLI do Google Cloud. Esse comando coleta
e arquiva registros importantes do sistema, Spark, Hadoop e Dataproc.
Em seguida, envia o arquivo para o bucket do Cloud Storage
anexado ao cluster.
Como usar o comando de diagnóstico da CLI do Google Cloud
É possível usar o comando diagnose
da CLI do Google Cloud nos clusters do Dataproc. Consulte Dataproc e Google Cloud CLI.
Depois que a CLI gcloud
estiver instalada e configurada, será possível executar o comando gcloud dataproc clusters diagnose
no cluster, conforme mostrado abaixo. Substitua cluster-name pelo nome do cluster e region pela região do cluster, por exemplo, --region=us-central1
.
gcloud dataproc clusters diagnose cluster-name \ --region=region \ ... other args ...
O comando gera o local do Cloud Storage do arquivo que contém os dados (consulte Itens incluídos na saída do comando de diagnóstico). Consulte Como compartilhar os dados coletados pelo diagnóstico para informações sobre como acessar e copiar o arquivo.
Como executar o script de diagnóstico no nó mestre (opcional)
O comando de diagnóstico da CLI do Google Cloud pode falhar ou expirar se um cluster estiver em estado de erro e não aceitar tarefas de diagnóstico do servidor do Dataproc. Para evitar esse problema, execute o SSH no nó mestre, faça o download do script de diagnóstico e execute o script localmente no nó mestre:
gcloud compute ssh hostname
gsutil cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh
O tarball de diagnóstico será salvo em um diretório temporário local. Se você quiser, siga as instruções na resposta ao comando para fazer upload de um bucket do Cloud Storage e compartilhar com o Suporte do Google.
Compartilhamento dos dados coletados pelo comando de diagnóstico
É possível compartilhar o arquivo gerado pelo comando diagnose
de duas maneiras:
- Faça download do arquivo do Cloud Storage e compartilhe-o.
- Altere as permissões no arquivo para autorizar outros usuários ou projetos do Google Cloud Platform a acessar o arquivo.
Por exemplo, o comando a seguir adiciona permissões de leitura ao arquivo de diagnóstico em um test-project
:
gsutil -m acl ch -g test-project:R path-to-archive
Itens incluídos na saída do comando de diagnóstico
O comando diagnose
inclui os seguintes arquivos de configuração, registros
e saídas do cluster em um arquivo, O arquivo é colocado
no bucket do Cloud Storage associado ao cluster
do Dataproc, conforme discutido acima.
Resumo do diagnóstico
O script de diagnóstico analisa automaticamente os dados coletados e gera um
summary.txt
na raiz do tarball de diagnóstico. No resumo, você encontra uma visão geral sobre o status do cluster, incluindo YARN, HDFS, disco, rede etc., e avisos para alertar possíveis problemas.
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 gcs 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/ |