Pode recolher os seguintes dados de diagnóstico para ajudar a resolver problemas de clusters e tarefas:
- Dados de diagnóstico de pontos de verificação: se estiver ativado na criação do cluster, o Dataproc recolhe dados de diagnóstico de pontos de verificação durante o ciclo de vida do cluster.
- Dados de diagnóstico de instantâneo: pode recolher um instantâneo único dos dados de diagnóstico do cluster.
Recolha de dados de diagnóstico de pontos de verificação
Se estiver ativada na criação do cluster, o Dataproc recolhe dados de diagnóstico de pontos de verificação durante as operações de criação do cluster, atualização do cluster e tarefa do Dataproc.
Localização dos dados do posto de controlo
O Dataproc guarda dados de diagnóstico de pontos de verificação
no contentor temporário
no Cloud Storage na seguinte pasta (checkpoint diagnostic data folder
):
gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID
O contentor temporário de cluster predefinido tem um período de retenção de TTL de 90 dias. Os dados são eliminados no final do período de retenção. Pode especificar o seu próprio intervalo de tempo temporário do cluster com um período de TTL diferente quando cria um cluster.
Dados de diagnóstico do ponto de restauro
Registos detalhados dos nós do cluster: o Dataproc executa os seguintes comandos para recolher e escrever informações do YARN e do HDFS nas seguintes localizações na pasta de dados de diagnóstico de pontos 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 da tarefa: o Dataproc guarda informações sobre tarefas MapReduce e registos de tarefas Spark para tarefas que usam a API Dataproc Jobs. Estes dados de tarefas são recolhidos para cada tarefa MapReduce e Spark enviada.
- MapReduce
job.xml
: um ficheiro que contém definições de configuração de tarefas, guardado em.../jobs/JOB_UUID/mapreduce/job.xml
. - Registos de eventos do Spark: detalhes de execução de tarefas úteis para a depuração, guardados em
.../jobs/JOB_UUID/spark/application-id
.
- MapReduce
Informações do sistema Linux: o Dataproc executa os seguintes comandos para recolher e guardar informações do sistema nas seguintes localizações na pasta de dados de diagnóstico de pontos de verificação no Cloud Storage.
Command Localização na pasta de diagnósticos 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
Ficheiros de configuração: o Dataproc guarda os seguintes ficheiros de configuração nas seguintes localizações na pasta de dados de diagnóstico de pontos de verificação no Cloud Storage.
Itens incluídos Localização na pasta de diagnósticos Propriedades do Dataproc .../configs/dataproc/dataproc.properties
Todos os ficheiros em
`/etc/google-dataproc/`.../configs/dataproc/
Todos os ficheiros em
`/etc/hadoop/conf/`.../configs/hadoop/
Todos os ficheiros em `/etc/hive/conf/` .../configs/hive/
Todos os ficheiros em
`/etc/hive-hcatalog/conf/`.../configs/hive-hcatalog/
Todos os ficheiros em `/etc/knox/conf/` .../configs/knox/
Todos os ficheiros em `/etc/pig/conf/` .../configs/pig/
Todos os ficheiros em
`/etc/presto/conf/`.../configs/presto/
Todos os ficheiros em
`/etc/spark/conf/`.../configs/spark/
Todos os ficheiros em `/etc/tez/conf/` .../configs/tez/
Todos os ficheiros em
`/etc/zookeeper/conf/`.../configs/zookeeper/
Ative e partilhe dados de diagnóstico de pontos de verificação
Quando cria um cluster, pode ativar e partilhar dados de diagnóstico de pontos de verificação de clusters com o Google Cloud apoio técnico:
Ative a recolha de dados de pontos de verificação
Adicione a
dataproc:diagnostic.capture.enabled=true
propriedade do cluster
quando criar um cluster do Dataproc para ativar
a recolha de dados de diagnóstico de pontos de verificação no cluster.
Partilhe dados de pontos de controlo
Se ativar o acesso uniforme ao nível do contentor no contentor temporário do cluster, todo o conteúdo do contentor temporário, incluindo os dados de diagnóstico de pontos de verificação recolhidos e os dados efémeros, como ficheiros do histórico de tarefas do MapReduce, registos do YARN agregados e registos de eventos do Spark, é partilhado com oGoogle Cloud apoio técnico.
Se o controlo de acesso ao nível do objeto estiver ativado no contentor temporário do cluster, apenas são partilhados os dados de diagnóstico de pontos de verificação recolhidos (dados na pasta de dados de diagnóstico de pontos de verificação no Cloud Storage).
Pode ativar a partilha de dados de diagnóstico de pontos de verificação com o Google Cloud apoio técnico quando cria um cluster ou após a criação do cluster:
Ativar partilha na criação do cluster: adicione a seguinte propriedade quando criar um cluster:
dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
Ativar partilha após a criação do cluster: pode ativar a partilha de dados de pontos de verificação com o Google Cloud apoio técnico após a criação do cluster das seguintes formas:
Conceda acesso de leitura aos dados de pontos de verificação à conta de serviço usada pelo Google Cloud apoio técnico.
Se o acesso uniforme ao nível do contentor estiver ativado no contentor temporário, adicione a associação da política de 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 controlo de acesso ao nível do objeto estiver ativado no contentor temporário, execute o seguinte comando para partilhar os dados de diagnóstico do ponto de verificação:
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
Recolha de dados de diagnóstico de instantâneos
Pode executar o seguinte comando
gcloud dataproc clusters diagnose
para recolher uma imagem instantânea dos dados de diagnóstico de um cluster em execução. Os dados são escritos como um ficheiro de arquivo (tar) no segmento de preparação do Dataproc no Cloud Storage.
gcloud dataproc clusters diagnose CLUSTER_NAME \ --region=REGION \ --tarball-access=GOOGLE_DATAPROC_DIAGNOSE
Notas:
- CLUSTER_NAME: o nome do cluster a diagnosticar.
- REGION: a região do cluster, por exemplo,
us-central1
. --tarball-access
=GOOGLE_DATAPROC_DIAGNOSE
Esta flag dá acesso ao ficheiro tar de diagnóstico para Google Cloud apoio técnico. Forneça Google Cloud apoio técnico com o caminho do Cloud Storage do ficheiro TAR de diagnóstico.Additional flags:
--start-time
com--end-time
: use ambas as flags para especificar um intervalo de tempo no formato%Y-%m-%dT%H:%M:%S.%fZ
para a recolha de dados de diagnóstico. A especificação de um intervalo de tempo também permite a recolha de registos de dimensionamento automático do Dataproc durante o intervalo de tempo (por predefinição, os registos de dimensionamento automático do Dataproc não são recolhidos nos dados da captura instantânea de diagnóstico).Pode usar qualquer uma das seguintes flags para recolher registos de saída específicos do controlador de tarefas, do evento Spark, da aplicação YARN e do Sparklens:
--job-ids
: uma lista de IDs de tarefas separada por vírgulas--yarn-application-ids
: uma lista separada por vírgulas de IDs de aplicações YARN- A agregação de registos do YARN tem de estar ativada (
yarn.log-aggregation-enable=true
) para a recolha de registos de aplicações do YARN. - Para tarefas MapReduce, apenas são recolhidos registos de aplicações YARN.
- A agregação de registos do YARN tem de estar ativada (
Opcional: execute o guião de diagnóstico
O comando gcloud dataproc clusters diagnose
pode falhar ou exceder o tempo limite se um cluster estiver num estado de erro e não puder aceitar tarefas de diagnóstico do servidor Dataproc. Em alternativa à execução do comando diagnose, pode usar o SSH para se ligar ao cluster e, em seguida, executar o script localmente no nó principal.
gcloud compute ssh HOSTNAME
gcloud storage cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh
O ficheiro tar do arquivo de diagnóstico é guardado num diretório local. A saída do comando lista a localização do ficheiro TAR com instruções sobre como carregar o ficheiro TAR para um contentor do Cloud Storage.
Dados de instantâneos de diagnóstico
Os dados do resumo do cluster incluem um resumo de diagnóstico e várias secções de arquivo.
Resumo do diagnóstico: o ficheiro de arquivo inclui summary.txt
que está na raiz do arquivo. Fornece uma vista geral do estado do cluster, incluindo o estado do YARN, HDFS, disco e rede, e inclui avisos para alertar para potenciais problemas.
Secções do arquivo: o ficheiro de arquivo inclui as seguintes informações que são escritas nas seguintes localizações do ficheiro de arquivo.
Informações sobre serviços e daemons
Comando executado Localização 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 Localização 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 Localização 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 Localização no arquivo Todos os registos em /var/log
com os seguintes prefixos no nome do ficheiro:
cloud-sql-proxy
dataproc
druid
gcdp
google
hadoop
hdfs
hive
knox
presto
spark
syslog
yarn
zookeeper
Os ficheiros são colocados na pasta logs
do arquivo e mantêm os nomes de ficheiros originais.Registos de arranque dos nós do Dataproc para cada nó (principal e de trabalho) no seu cluster. Os ficheiros são colocados na pasta node_startup
do arquivo, que contém subpastas separadas para cada máquina no cluster.Registos do gateway de componentes de journalctl -u google-dataproc-component-gateway
/logs/google-dataproc-component-gateway.log
Ficheiros de configuração
Artigos incluídos Localização 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 ficheiros em /etc/google-dataproc/
/conf/dataproc/
Todos os ficheiros em /etc/hadoop/conf/
/conf/hadoop/
Todos os ficheiros em /etc/hive/conf/
/conf/hive/
Todos os ficheiros em /etc/hive-hcatalog/conf/
/conf/hive-hcatalog/
Todos os ficheiros em /etc/knox/conf/
/conf/knox/
Todos os ficheiros em /etc/pig/conf/
/conf/pig/
Todos os ficheiros em /etc/presto/conf/
/conf/presto/
Todos os ficheiros em /etc/spark/conf/
/conf/spark/
Todos os ficheiros em /etc/tez/conf/
/conf/tez/
Todos os ficheiros em /etc/zookeeper/conf/
/conf/zookeeper/
Partilhe o ficheiro de arquivo
Pode partilhar o ficheiro de arquivo com o Google Cloud apoio técnico ou os utilizadores para receber ajuda na resolução de problemas de clusters ou tarefas.
Para partilhar o ficheiro de arquivo:
- Copiar o ficheiro de arquivo do Cloud Storage e, em seguida, partilhar o arquivo transferido, ou
Altere as autorizações no arquivo para permitir que outros Google Cloud utilizadores ou projetos acedam ao ficheiro.
Exemplo: o comando seguinte concede autorizações de leitura ao 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