É 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:
- Faça o download do arquivo do Cloud Storage e compartilhe-o.
- Altere as permissões no arquivo para permitir que outros Google Cloud usuários ou projetos acessem 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/ |