É possível coletar os seguintes dados de diagnóstico para ajudar a resolver problemas de cluster e job:
- Dados de diagnóstico de checkpoint: se ativada na criação do cluster, o Dataproc coleta dados de diagnóstico de checkpoint durante o ciclo de vida do cluster.
- Dados de diagnóstico de snapshot: é possível coletar um snapshot único de dados de diagnóstico do cluster.
Coleta de dados de diagnóstico de checkpoint
Se ativado na criação do cluster, o Dataproc coleta dados de diagnóstico de checkpoint durante as operações de criação do cluster, atualização do cluster e job do Dataproc.
Local dos dados do checkpoint
O Dataproc salva dados de diagnóstico de checkpoint no bucket temporário do cluster no Cloud Storage na seguinte pasta (checkpoint diagnostic data folder
):
gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID
O bucket temporário padrão do cluster tem um período de retenção de TTL de 90 dias. Os dados são excluídos ao final do período de retenção. É possível especificar seu próprio bucket temporário do cluster com um período de TTL diferente ao criar um cluster.
Dados de diagnóstico de checkpoint
Registros detalhados do nó do cluster:o Dataproc executa os seguintes comandos para coletar e gravar informações do YARN e do HDFS nos locais a seguir na pasta de dados de diagnóstico do ponto de verificação 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 MapReduce 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 do ponto de verificação 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 do checkpoint 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/
Ativar e compartilhar dados de diagnóstico de checkpoint
Ao criar um cluster, é possível ativar e compartilhar dados de diagnóstico de checkpoint do cluster com o suporte do Google Cloud :
Ativar a coleta de dados de checkpoint
Adicione a
propriedade do cluster
dataproc:diagnostic.capture.enabled=true
ao criar um cluster do Dataproc para ativar
a coleta de dados de diagnóstico de ponto de verificação no cluster.
Compartilhar dados de checkpoint
Se você ativar o acesso uniforme no nível do bucket no bucket temporário do cluster, todo o conteúdo dele, incluindo dados de diagnóstico de ponto de verificação coletados e dados temporários, como arquivos de histórico de jobs do MapReduce, registros agregados do YARN e registros de eventos do Spark, será compartilhado com o suporte doGoogle Cloud .
Se o controle de acesso no nível do objeto estiver ativado no bucket temporário do cluster, apenas os dados de diagnóstico do ponto de verificação coletados (dados na pasta de dados de diagnóstico do ponto de verificação no Cloud Storage) serão compartilhados.
É possível ativar o compartilhamento de dados de diagnóstico de ponto de verificação com o suporte do Google Cloud ao criar um cluster ou depois da criação dele:
Ativar o compartilhamento ao criar o cluster: adicione a seguinte propriedade ao criar um cluster:
dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
Ativar o compartilhamento após a criação do cluster: é possível ativar o compartilhamento de dados de ponto de verificação com o suporte doGoogle Cloud após a criação do cluster das seguintes maneiras:
Forneça acesso de leitura aos dados de ponto de verificação para a conta de serviço usada pelo suporte do Google Cloud .
Se o acesso uniforme no nível do bucket estiver ativado no bucket temporário, adicione uma vinculação de política do IAM:
gcloud storage buckets add-iam-policy-binding gs://TEMP_BUCKET \ --member=serviceAccount:cloud-diagnose@cloud-dataproc.iam.gserviceaccount.com \ --role=roles/storage.objectViewer
Se o controle de acesso no nível do objeto estiver ativado no bucket temporário, execute o seguinte comando para compartilhar dados de diagnóstico de checkpoint:
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
Coleta de dados de diagnóstico 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 (
Opcional: 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 cluster
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 de snapshot do cluster incluem um resumo de diagnóstico e várias seções de arquivo.
Resumo do diagnóstico:o arquivo de arquivo inclui summary.txt
que está na raiz do arquivo. Ele fornece uma visão geral do status do cluster, incluindo YARN, HDFS, disco e status da 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