Dataproc recopila los siguientes datos de diagnóstico del clúster para ayudarte a solucionar problemas del clúster y del trabajo:
- Datos de puntos de control: Cuando se habilita, Dataproc recopila y actualiza datos de diagnóstico durante el ciclo de vida de un clúster.
- Datos de instantáneas: Puedes recopilar una instantánea de los datos de diagnóstico del clúster desde un clúster en ejecución.
Datos de los puntos de control
Cuando se habilita la función de datos de punto de control, Dataproc recopila datos de diagnóstico durante la creación del clúster, la actualización del clúster y las operaciones de la API de Jobs de Dataproc. Dataproc guarda los datos en el clúster temp bucket
en Cloud Storage, que tiene un período de retención de TTL de 90 días. Los datos se borran
al final del período de retención.
Habilita las propiedades de recopilación de datos: Puedes incluir las siguientes propiedades opcionales del clúster cuando creas un clúster. Solo afectan la recopilación de datos de diagnóstico de puntos de control en el clúster creado.
- Habilita la recopilación de datos: Si configuras la propiedad
dataproc:diagnostic.capture.enabled=true
, se habilita la recopilación de datos de diagnóstico de puntos de control en el clúster. - Compartir datos de diagnóstico: La configuración de la propiedad
dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
comparte los datos de diagnóstico recopilados del punto de control con la asistencia deGoogle Cloud .- Después de crear el clúster, puedes compartir los datos de diagnóstico con el equipo de asistencia de Google Cloud . Para ello, otorga acceso de lectura a los datos a la cuenta de servicio que usa el equipo de asistencia de Google Cloud de la siguiente manera: Google Cloud
gsutil -m acl ch -r -u \ cloud-diagnose@cloud-dataproc.iam.gserviceaccount.com:R \ gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID
- Después de crear el clúster, puedes compartir los datos de diagnóstico con el equipo de asistencia de Google Cloud . Para ello, otorga acceso de lectura a los datos a la cuenta de servicio que usa el equipo de asistencia de Google Cloud de la siguiente manera: Google Cloud
Datos de diagnóstico
Los datos de diagnóstico consisten en los siguientes datos escritos en gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID/
en Cloud Storage. En esta sección, esta ubicación se denomina carpeta de datos de diagnóstico.
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 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 trabajos de Spark para los trabajos que usan la API de Dataproc Jobs. Estos datos de trabajo se recopilan para cada trabajo de MR y Spark que se envía.
job.xml
de MapReduce: Es un archivo que contiene la configuración de trabajos, 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, que se guardan en
.../jobs/JOB_UUID/spark/application-id
.
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 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 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/
Datos de instantáneas
Puedes ejecutar el siguiente
comando gcloud dataproc clusters diagnose
para recopilar una instantánea de datos de diagnóstico de un
clúster en ejecución. Los datos se escriben como un archivo de almacenamiento (tar) en el bucket de preparación 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, como
us-central1
. OPTIONAL FLAGS:
Puedes usar cualquiera de las siguientes marcas para recopilar registros de salida específicos del controlador de trabajo, el evento de Spark, la aplicación de YARN y Sparklens. Notas:
- La agregación de registros de YARN debe estar habilitada (
yarn.log-aggregation-enable=true
) para la recopilación de registros de la aplicación de YARN. Para los trabajos de MapReduce, solo se recopilan los registros de la aplicación YARN.
--job-ids
: Es una lista de IDs de trabajos separados por comas.--yarn-application-ids
: Es una lista de IDs de aplicaciones de YARN separados por comas.
- La agregación de registros de YARN debe estar habilitada (
--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 habilita la recopilación de registros de ajuste de escala automático de Dataproc durante ese período (de forma predeterminada, los registros de ajuste de escala automático de Dataproc no se recopilan en los datos de instantáneas de diagnóstico).--tarball-access
=GOOGLE_DATAPROC_DIAGNOSE
Usa esta marca para enviar o proporcionar acceso al archivo tar de diagnóstico al equipo de asistencia deGoogle Cloud . También proporciona la siguiente información a Google Cloud Asistencia:- Ruta de acceso de Cloud Storage del archivo tar de diagnóstico o
- Bucket de configuración del clúster, UUID del clúster y ID de operación del comando diagnose
Si es necesario, 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 ejecutar el comando diagnose, puedes usar SSH para conectarte al nodo principal del clúster, descargar la secuencia de comandos de diagnóstico y, luego, ejecutarla de forma local en el nodo principal.
gcloud compute ssh HOSTNAME
gsutil cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh
El archivo tar del archivo 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 del diagnóstico: El archivo de almacenamiento incluye summary.txt
que se encuentra en la raíz del archivo. Proporciona una descripción general del estado del clúster, incluidos YARN, HDFS, disco y estado de red, y también incluye advertencias para alertarte sobre posibles problemas.
Secciones del archivo: El archivo de almacenamiento incluye la siguiente información que se escribe en las siguientes ubicaciones de archivos de almacenamiento.
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/
Cómo compartir el archivo de almacenamiento
Puedes compartir el archivo de almacenamiento con el equipo de asistencia de Google Cloud o con los usuarios para obtener ayuda para solucionar problemas del clúster o del trabajo.
Para compartir el archivo de almacenamiento, haz lo siguiente:
- Copia el archivo del archivo desde Cloud Storage y, luego, comparte el archivo descargado.
Cambia los permisos en el archivo para permitir que otros Google Cloud usuarios o proyectos tengan acceso al archivo.
Ejemplo: El siguiente comando agrega permisos de lectura al archivo en un
test-project
:gsutil -m acl ch -g test-project:R PATH_TO_ARCHIVE}