O Dataproc coleta os seguintes dados de diagnóstico de cluster para ajudar a resolver problemas de cluster e job:
- Dados de verificação: 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 de clusters, a
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
no final do período de armazenamento.
Ativar as propriedades de coleta de dados: é possível incluir as propriedades opcionais de cluster a seguir ao criar um cluster. Elas afetam apenas a coleta de dados de diagnóstico de pontos de verificação no cluster criado.
- Ativar a coleta de dados:definir a propriedade
dataproc:diagnostic.capture.enabled=true
ativa a coleta de dados de diagnóstico de pontos de verificação no cluster. - Compartilhar dados de diagnóstico:definir a propriedade
dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
compartilha os dados de diagnóstico do checkpoint coletados com o suporteGoogle Cloud .- Após a criação do cluster, é possível compartilhar os dados de diagnóstico
com o suporte do Google Cloud concedendo acesso de leitura aos dados à
conta de serviço usada pelo suporte do Google Cloud , da seguinte maneira:
gsutil -m acl ch -r -u \ cloud-diagnose@cloud-dataproc.iam.gserviceaccount.com:R \ gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID
- Após a criação do cluster, é possível compartilhar os dados de diagnóstico
com o suporte do Google Cloud concedendo acesso de leitura aos dados à
conta de serviço usada pelo suporte do Google Cloud , da seguinte maneira:
Dados de diagnóstico
Os dados de diagnóstico consistem nos seguintes dados gravados em
gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID/
no Cloud Storage. Esse local é chamado de pasta de dados de diagnóstico nesta
seção.
Registros de detalhes do nó do cluster:o Dataproc executa os comandos a seguir 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 Local 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 logs de jobs do Spark para jobs que usam a API Dataproc Jobs. Esses dados de job são coletados para cada MR e job do Spark enviado.
job.xml
do MapReduce: um arquivo com as configurações de configuração do 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
.
Informações do sistema Linux:o Dataproc executa os comandos abaixo para coletar e salvar informações do sistema nos seguintes locais na pasta de dados de diagnóstico do 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 do snapshot
É possível executar o comando
gcloud dataproc clusters diagnose
a seguir 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 preparação 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
. OPTIONAL FLAGS:
É possível usar qualquer uma das flags a seguir para coletar logs de saída de drivers de job, eventos do Spark, aplicativos do YARN e Sparklens específicos. Observações:
- A agregação de registros do YARN precisa ser ativada
(
yarn.log-aggregation-enable=true
) para a coleta de registros de aplicativo do YARN. Para jobs do MapReduce, apenas os registros de aplicativos do YARN são coletados.
--job-ids
: uma lista de IDs de trabalhos separados por vírgulas.--yarn-application-ids
: uma lista separada por vírgulas de IDs de aplicativos do YARN.
- A agregação de registros do YARN precisa ser ativada
(
--start-time
com--end-time
: use as duas flags para especificar um intervalo 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 instantâneo de diagnóstico.--tarball-access
=GOOGLE_DATAPROC_DIAGNOSE
Use essa flag para enviar ou fornecer acesso ao arquivo tar de diagnóstico para Google Cloud suporte. Também forneça informações para Google Cloud suporte 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 diagnose
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
gsutil cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh
O arquivo tar do arquivo 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 do arquivo tar para um bucket do Cloud Storage.
Dados de snapshots 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 inclui summary.txt
, que está
na raiz do arquivo. Ele fornece uma visão geral do status do cluster,
incluindo o status do YARN, HDFS, disco e rede, e inclui avisos para
alertar sobre possíveis problemas.
Seções de arquivo:o arquivo inclui as seguintes informações, que são gravadas nos seguintes locais de 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
Você pode compartilhar o arquivo com o suporte do Google Cloud ou com os usuários para resolver problemas de cluster ou job.
Para compartilhar o arquivo:
- Copie o arquivo de arquivamento do Cloud Storage e compartilhe o arquivo transferido por download ou
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 em um
test-project
:gsutil -m acl ch -g test-project:R PATH_TO_ARCHIVE}