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 resolver esse
problema, os clusters do Cloud Dataproc são compatíveis com um comando diagnose
especial por meio do SDK do 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 do SDK do Cloud
Use o comando diagnose
do SDK do Cloud nos clusters
do Dataproc (consulte Dataproc e SDK do Cloud).
Depois de instalar e configurar o SDK do Cloud, execute 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 exibe o nome e local do arquivo que contém os dados.
... Saving archive to cloud Copying file:///tmp/tmp.FgWEq3f2DJ/diagnostic.tar ... Uploading ...23db9-762e-4593-8a5a-f4abd75527e6/diagnostic.tar ... Diagnostic results saved in: gs://bucket-name/.../cluster-uuid/.../job-id/diagnostic.tar ...Neste exemplo, bucket-name é o bucket do Cloud Storage anexado ao cluster, cluster-uuid é o código exclusivo (UUID) do cluster e job-id é o UUID pertencente à tarefa do sistema que executou o comando do diagnóstico.
Quando você cria um cluster do Dataproc, o Dataproc
cria um bucket do Cloud Storage e o anexa ao cluster. O
comando de diagnóstico inclui o arquivo nesse bucket. Para determinar o
nome do bucket criado pelo Dataproc, use o
comando clusters describe
do SDK do Cloud. O bucket associado ao cluster
é listado ao lado de configurationBucket
.
gcloud dataproc clusters describe cluster-name \ --region=region \ ... clusterName: cluster-name clusterUuid: daa40b3f-5ff5-4e89-9bf1-bcbfec6e0eac configuration: configurationBucket: dataproc-edc9d85f-...-us ...
Como executar o script de diagnóstico no nó mestre (opcional)
O comando de diagnóstico do SDK do Cloud 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. 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.
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/ |