O Dataproc coleta os seguintes dados de diagnóstico do cluster para ajudar você a resolver problemas de cluster e job:
- Dados de checkpoint: quando ativado, o Dataproc coleta e atualiza dados de diagnóstico durante todo o ciclo de vida de um cluster.
- Dados de snapshot: é possível coletar um snapshot de dados de diagnóstico do cluster de um cluster em execução.
Dados de checkpoint
Quando o recurso de dados de ponto de verificação está ativado, o Dataproc coleta dados de diagnóstico durante a criação e atualização de clusters e as operações da API Jobs do Dataproc. O Dataproc salva os dados no cluster
temp bucket
no
Cloud Storage, que tem um período de armazenamento de TTL de 90 dias. Os dados são excluídos
ao final do período de armazenamento.
Ativar propriedades de coleta de dados: é possível incluir as seguintes propriedades opcionais do cluster ao criar um cluster. Elas afetam apenas a coleta de dados de diagnóstico de ponto de verificação no cluster criado.
- Ative a coleta de dados:definir a propriedade
dataproc:diagnostic.capture.enabled=true
permite a coleta de dados de diagnóstico de checkpoint no cluster. - Compartilhar dados de diagnóstico:ao definir a propriedade
dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
, você compartilha os dados de diagnóstico do ponto de verificação coletados com o suporte doGoogle Cloud .- Após a criação do cluster, você pode compartilhar os dados de diagnóstico
com o suporte, concedendo acesso de leitura aos dados para a
conta de serviço usada pelo suporte, da seguinte forma:
gcloud storage objects update \ gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID \ --add-acl-grant=entity=user-cloud-diagnose@cloud-dataproc.iam.gserviceaccount.com,role=READER --recursive \
- Após a criação do cluster, você pode compartilhar os dados de diagnóstico
com o suporte, concedendo acesso de leitura aos dados para a
conta de serviço usada pelo suporte, da seguinte forma:
Dados de diagnóstico
Os dados de diagnóstico consistem nas seguintes informações gravadas em gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID/
no Cloud Storage. Nesta seção, esse local é chamado de pasta de dados de diagnóstico.
Registros detalhados do nó do cluster:o Dataproc executa os seguintes comandos para coletar e gravar informações do YARN e do HDFS nos seguintes locais na pasta de dados de diagnóstico no Cloud Storage.
Comando executado Localização na pasta de diagnóstico yarn node -list -all
.../nodes/timestamp/yarn-nodes.log
hdfs dfsadmin -report -live -decommissioning
.../nodes/timestamp/hdfs-nodes.log
Detalhes do job:o Dataproc salva informações de jobs do MapReduce e registros de jobs do Spark para jobs que usam a API Dataproc Jobs. Esses dados são coletados para cada job do MR e do Spark enviado.
- MapReduce
job.xml
: um arquivo que contém configurações de configuração de job, salvo em.../jobs/JOB_UUID/mapreduce/job.xml
. - Registros de eventos do Spark: detalhes da execução do job úteis para depuração, salvos em
.../jobs/JOB_UUID/spark/application-id
.
- MapReduce
Informações do sistema Linux:o Dataproc executa os seguintes comandos para coletar e salvar informações do sistema nos seguintes locais na pasta de dados de diagnóstico no Cloud Storage.
Comando Localização na pasta de diagnóstico sysctl -a
.../system/sysctl.log
cat /proc/sys/fs/file-nr
.../system/fs-file-nr.log
ping -c 1
.../system/cluster-ping.log
cp /etc/hosts
.../system/hosts_entries.log
cp /etc/resolv.conf
.../system/resolv.conf
Arquivos de configuração:o Dataproc salva os seguintes arquivos de configuração nos locais a seguir na pasta de dados de diagnóstico no Cloud Storage.
Item(ns) incluído(s) Localização na pasta de diagnóstico Propriedades do Dataproc .../configs/dataproc/dataproc.properties
Todos os arquivos em
`/etc/google-dataproc/`.../configs/dataproc/
Todos os arquivos em
`/etc/hadoop/conf/`.../configs/hadoop/
Todos os arquivos em `/etc/hive/conf/` .../configs/hive/
Todos os arquivos em
`/etc/hive-hcatalog/conf/`.../configs/hive-hcatalog/
Todos os arquivos em `/etc/knox/conf/` .../configs/knox/
Todos os arquivos em `/etc/pig/conf/` .../configs/pig/
Todos os arquivos em
`/etc/presto/conf/`.../configs/presto/
Todos os arquivos em
`/etc/spark/conf/`.../configs/spark/
Todos os arquivos em `/etc/tez/conf/` .../configs/tez/
Todos os arquivos em
`/etc/zookeeper/conf/`.../configs/zookeeper/
Dados de snapshot
É possível executar o seguinte comando
gcloud dataproc clusters diagnose
para coletar um snapshot de dados de diagnóstico de um
cluster em execução. Os dados são gravados como um arquivo de arquivamento (tar) no bucket de preparo do Dataproc no Cloud Storage.
gcloud dataproc clusters diagnose CLUSTER_NAME \ --region=REGION \ --tarball-access=GOOGLE_DATAPROC_DIAGNOSE
Observações:
- CLUSTER_NAME: o nome do cluster a ser diagnosticado.
- REGION: a região do cluster, por exemplo,
us-central1
. --tarball-access
=GOOGLE_DATAPROC_DIAGNOSE
Essa flag fornece acesso ao arquivo tar de diagnóstico para Google Cloud suporte. Forneça Google Cloud suporte com o caminho do Cloud Storage do arquivo tar de diagnóstico.Additional flags:
--start-time
com--end-time
: use as duas flags para especificar um período no formato%Y-%m-%dT%H:%M:%S.%fZ
para a coleta de dados de diagnóstico. Ao especificar um período, também é possível coletar registros de escalonamento automático do Dataproc durante esse período. Por padrão, esses registros não são coletados nos dados do snapshot de diagnóstico.Use uma ou ambas as flags a seguir para coletar registros específicos de driver de job, evento do Spark, aplicativo YARN e saída do Sparklens:
--job-ids
: uma lista separada por vírgulas de IDs de jobs--yarn-application-ids
: uma lista separada por vírgulas de IDs de aplicativos YARN- A agregação de registros do YARN precisa estar ativada (
yarn.log-aggregation-enable=true
) para a coleta de registros de aplicativos do YARN. - Para jobs do MapReduce, somente os registros de aplicativos do YARN são coletados.
- A agregação de registros do YARN precisa estar ativada (
Se necessário, execute o script de diagnóstico
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, você
pode usar o SSH para se conectar ao nó
mestre do cluster, fazer o download do script de diagnóstico e executar o script 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 de 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 dele para um bucket do Cloud Storage.
Dados de instantâneo de diagnóstico
Os dados do snapshot do cluster incluem um resumo de diagnóstico e várias seções de arquivo.
Resumo do diagnóstico:o arquivo de arquivamento inclui summary.txt
na raiz do arquivo. Ele fornece uma visão geral do status do cluster, incluindo YARN, HDFS, disco e status de rede, e inclui avisos para alertar sobre possíveis problemas.
Seções do arquivo:o arquivo inclui as seguintes informações que são gravadas nos seguintes locais do arquivo.
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 da JVM
Comando executado Local no arquivo jstack -l "${DATAPROC_AGENTPID}"
jstack/agent${DATAPROC_AGENT_PID}.jstack
jstack -l "${PRESTOPID}"
jstack/agent${PRESTO_PID}.jstack
jstack -l "${JOB_DRIVERPID}"
jstack/driver${JOB_DRIVER_PID}.jstack
jinfo "${DATAPROC_AGENTPID}"
jinfo/agent${DATAPROC_AGENT_PID}.jstack
jinfo "${PRESTOPID}"
jinfo/agent${PRESTO_PID}.jstack
jinfo "${JOB_DRIVERPID}"
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
Item incluído 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/
Compartilhar o arquivo compactado
Você pode compartilhar o arquivo com o suporte do Google Cloud ou com usuários para receber ajuda para resolver problemas de cluster ou de job.
Para compartilhar o arquivo compactado:
- Copie o arquivo compactado do Cloud Storage e compartilhe o arquivo baixado ou
Altere as permissões no arquivo para permitir que outros usuários ou projetos do Google Cloud acessem o arquivo.
Exemplo: o comando a seguir concede permissões de leitura do arquivo aos proprietários do projeto
test-project
:gcloud storage objects update PATH_TO_ARCHIVE} --add-acl-grant=entity=project-owners-test-project,role=READER