Puedes recopilar los siguientes datos de diagnóstico para ayudarte a solucionar problemas relacionados con clústeres y trabajos:
- Datos de diagnóstico de puntos de control: Si se habilitan durante la creación del clúster, Dataproc recopila datos de diagnóstico de puntos de control durante el ciclo de vida del clúster.
- Datos de diagnóstico de instantáneas: Puedes recopilar una instantánea única de los datos de diagnóstico del clúster.
Recopilación de datos de diagnóstico de puntos de control
Si se habilita durante la creación del clúster, Dataproc recopila datos de diagnóstico de puntos de control durante las operaciones de creación del clúster, actualización del clúster y trabajo de Dataproc.
Ubicación de los datos del punto de control
Dataproc guarda los datos de diagnóstico de los puntos de control en el bucket temporal del clúster en Cloud Storage en la siguiente carpeta (el checkpoint diagnostic data folder
):
gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID
El bucket temporal predeterminado del clúster tiene un período de retención del TTL de 90 días. Los datos se borran al final del período de retención. Puedes especificar tu propio bucket temporal del clúster con un período de TTL diferente cuando creas un clúster.
Datos de diagnóstico del punto de control
Registros de detalles del nodo del clúster: Dataproc ejecuta los siguientes comandos para recopilar y escribir información de YARN y HDFS en las siguientes ubicaciones de la carpeta de datos de diagnóstico del punto de control en Cloud Storage.
Comando ejecutado Ubicación en la carpeta de diagnóstico yarn node -list -all
.../nodes/timestamp/yarn-nodes.log
hdfs dfsadmin -report -live -decommissioning
.../nodes/timestamp/hdfs-nodes.log
Detalles del trabajo: Dataproc guarda la información de los trabajos de MapReduce y los registros de los trabajos de Spark para los trabajos que usan la API de Dataproc Jobs. Estos datos de trabajo se recopilan para cada trabajo de MapReduce y Spark que se envía.
- MapReduce
job.xml
: Es un archivo que contiene la configuración del trabajo y que se guarda en.../jobs/JOB_UUID/mapreduce/job.xml
. - Registros de eventos de Spark: Detalles de la ejecución de trabajos útiles para la depuración, guardados en
.../jobs/JOB_UUID/spark/application-id
.
- MapReduce
Información del sistema Linux: Dataproc ejecuta los siguientes comandos para recopilar y guardar información del sistema en las siguientes ubicaciones de la carpeta de datos de diagnóstico del punto de control en Cloud Storage.
Comando Ubicación en la carpeta 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
Archivos de configuración: Dataproc guarda los siguientes archivos de configuración en las siguientes ubicaciones de la carpeta de datos de diagnóstico del punto de control en Cloud Storage.
Elementos incluidos Ubicación en la carpeta de diagnóstico Propiedades de Dataproc .../configs/dataproc/dataproc.properties
Todos los archivos en
`/etc/google-dataproc/`.../configs/dataproc/
Todos los archivos en
`/etc/hadoop/conf/`.../configs/hadoop/
Todos los archivos en `/etc/hive/conf/` .../configs/hive/
Todos los archivos en
`/etc/hive-hcatalog/conf/`.../configs/hive-hcatalog/
Todos los archivos en `/etc/knox/conf/` .../configs/knox/
Todos los archivos en `/etc/pig/conf/` .../configs/pig/
Todos los archivos en
"/etc/presto/conf/".../configs/presto/
Todos los archivos en
`/etc/spark/conf/`.../configs/spark/
Todos los archivos en `/etc/tez/conf/` .../configs/tez/
Todos los archivos en
`/etc/zookeeper/conf/`.../configs/zookeeper/
Habilita y comparte datos de diagnóstico de puntos de control
Cuando creas un clúster, puedes habilitar y compartir datos de diagnóstico de puntos de control del clúster con el equipo de asistencia al cliente de Google Cloud :
Habilita la recopilación de datos de puntos de control
Agrega la propiedad del clúster dataproc:diagnostic.capture.enabled=true
cuando crees un clúster de Dataproc para habilitar la recopilación de datos de diagnóstico de puntos de control en el clúster.
Compartir datos de puntos de control
Si habilitas el acceso uniforme a nivel del bucket en el bucket temporal del clúster, todo el contenido del bucket temporal, incluidos los datos de diagnóstico de puntos de control recopilados y los datos efímeros, como los archivos de historial de trabajos de MapReduce, los registros agregados de YARN y los registros de eventos de Spark, se comparten con el equipo de asistencia al cliente deGoogle Cloud .
Si el control de acceso a nivel del objeto está habilitado en el bucket temporal del clúster, solo se comparten los datos de diagnóstico del punto de control recopilados (datos en la carpeta de datos de diagnóstico del punto de control en Cloud Storage).
Puedes habilitar el uso compartido de datos de diagnóstico de puntos de control con el equipo de asistencia al cliente deGoogle Cloud cuando creas un clúster o después de crearlo:
Habilita el uso compartido durante la creación del clúster: Agrega la siguiente propiedad cuando crees un clúster:
dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
Habilita el uso compartido después de la creación del clúster: Puedes habilitar el uso compartido de datos de puntos de control con el equipo de asistencia al cliente deGoogle Cloud después de crear el clúster de las siguientes maneras:
Proporciona acceso de lectura a los datos de puntos de control a la cuenta de servicio que usa el equipo de asistencia de Google Cloud .
Si el acceso uniforme a nivel de bucket está habilitado en el bucket temporal, agrega una vinculación de 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
Si el control de acceso a nivel del objeto está habilitado en el bucket temporal, ejecuta el siguiente comando para compartir los datos de diagnóstico del punto de control:
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
Recopilación de datos de diagnóstico de instantáneas
Puedes ejecutar el siguiente comando gcloud dataproc clusters diagnose
para recopilar una instantánea de los datos de diagnóstico de un clúster en ejecución. Los datos se escriben como un archivo (tar) en el bucket de etapa de pruebas de Dataproc en Cloud Storage.
gcloud dataproc clusters diagnose CLUSTER_NAME \ --region=REGION \ --tarball-access=GOOGLE_DATAPROC_DIAGNOSE
Notas:
- CLUSTER_NAME: Es el nombre del clúster que se diagnosticará.
- REGION: Es la región del clúster, por ejemplo,
us-central1
. --tarball-access
=GOOGLE_DATAPROC_DIAGNOSE
Esta marca proporciona acceso al archivo tar de diagnóstico para el Google Cloud support. Proporciona Google Cloud asistencia con la ruta de acceso de Cloud Storage al archivo tar de diagnóstico.Additional flags:
--start-time
con--end-time
: Usa ambas marcas para especificar un período en formato%Y-%m-%dT%H:%M:%S.%fZ
para la recopilación de datos de diagnóstico. Especificar un período también permite la recopilación de registros del ajuste de escala automático de Dataproc durante ese período (de forma predeterminada, los registros del ajuste de escala automático de Dataproc no se recopilan en los datos de la instantánea de diagnóstico).Puedes usar cualquiera de las siguientes marcas para recopilar registros específicos del controlador de trabajos, eventos de Spark, aplicaciones de YARN y resultados de Sparklens:
--job-ids
: Lista de IDs de trabajos separados por comas--yarn-application-ids
: Es una lista separada por comas de los IDs de aplicaciones de YARN.- La agregación de registros de YARN debe estar habilitada (
yarn.log-aggregation-enable=true
) para la recopilación de registros de aplicaciones de YARN. - En el caso de los trabajos de MapReduce, solo se recopilan los registros de la aplicación de YARN.
- La agregación de registros de YARN debe estar habilitada (
Opcional: Ejecuta la secuencia de comandos de diagnóstico
El comando gcloud dataproc clusters diagnose
puede fallar o agotar su tiempo de espera si un clúster se encuentra en un estado de error y no puede aceptar tareas de diagnóstico del servidor de Dataproc. Como alternativa a la ejecución del comando diagnose, puedes usar SSH para conectarte al clúster y, luego, ejecutar la secuencia de comandos de forma local en el nodo principal.
gcloud compute ssh HOSTNAME
gcloud storage cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh
El archivo tar de diagnóstico se guarda en un directorio local. El resultado del comando enumera la ubicación del archivo tar con instrucciones para subirlo a un bucket de Cloud Storage.
Datos de instantáneas de diagnóstico
Los datos de la instantánea del clúster incluyen un resumen de diagnóstico y varias secciones de archivo.
Resumen de diagnóstico: El archivo incluye summary.txt
en la raíz del archivo. Proporciona una descripción general del estado del clúster, incluido el estado de YARN, HDFS, el disco y la red, y también incluye advertencias para alertarte sobre posibles problemas.
Secciones del archivo: El archivo incluye la siguiente información, que se escribe en las siguientes ubicaciones del archivo.
Información de daemons y servicios
Comando ejecutado Ubicación en archivo 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
Información de JVM
Comando ejecutado Ubicación en archivo 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
Información del sistema Linux
Comando ejecutado Ubicación en archivo 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
Artículo incluido Ubicación en archivo Todos los registros en /var/log
con los siguientes prefijos en su nombre de archivo:
cloud-sql-proxy
dataproc
druid
gcdp
google
hadoop
hdfs
hive
knox
presto
spark
syslog
yarn
zookeeper
Los archivos se colocan en la carpeta logs
y del archivo y conservan sus nombres de archivo originales.Registros de inicio del nodo de Dataproc para cada nodo (principal y trabajador) en tu clúster. Los archivos se colocan en la carpeta de archivo node_startup
, que contiene subcarpetas separadas para cada máquina en el clúster.Registros de puerta de enlace de componentes de journalctl -u google-dataproc-component-gateway
/logs/google-dataproc-component-gateway.log
Archivos de configuración
Elementos incluidos Ubicación en archivo Metadatos de VM /conf/dataproc/metadata
Variables de entorno en /etc/environment
/conf/dataproc/environment
Propiedades de Dataproc /conf/dataproc/dataproc.properties
Todos los archivos en /etc/google-dataproc/
/conf/dataproc/
Todos los archivos en /etc/hadoop/conf/
/conf/hadoop/
Todos los archivos en /etc/hive/conf/
/conf/hive/
Todos los archivos en /etc/hive-hcatalog/conf/
/conf/hive-hcatalog/
Todos los archivos en /etc/knox/conf/
/conf/knox/
Todos los archivos en /etc/pig/conf/
/conf/pig/
Todos los archivos en /etc/presto/conf/
/conf/presto/
Todos los archivos en /etc/spark/conf/
/conf/spark/
Todos los archivos en /etc/tez/conf/
/conf/tez/
Todos los archivos en /etc/zookeeper/conf/
/conf/zookeeper/
Comparte el archivo
Puedes compartir el archivo con el equipo de asistencia de Google Cloud o con los usuarios para obtener ayuda y solucionar problemas relacionados con el clúster o el trabajo.
Para compartir el archivo:
- Copia el archivo de Cloud Storage y, luego, comparte el archivo descargado.
Cambia los permisos en el archivo para permitir que otros Google Cloud usuarios o proyectos accedan al archivo.
Ejemplo: El siguiente comando otorga permisos de lectura del archivo a los propietarios del proyecto
test-project
:gcloud storage objects update PATH_TO_ARCHIVE} --add-acl-grant=entity=project-owners-test-project,role=READER