Diagnostica clústeres de Dataproc

“Dataproc Cluster Command Diagnostic Summary | Google Cloud”

Puedes ejecutar el comando gcloud dataproc clusters diagnose para recopilar registros del sistema, de Spark, de Hadoop y de Dataproc, archivos de configuración del clúster y otra información que puedes examinar o compartir con el equipo de asistencia de Google para solucionar problemas de un clúster o trabajo de Dataproc. El comando sube los datos de diagnóstico y el resumen al bucket de etapa de pruebas de Dataproc en Cloud Storage.

Ejecuta el comando diagnose cluster de Google Cloud CLI

Ejecuta el comando gcloud dataproc clusters diagnose para crear y mostrar la ubicación del archivo de almacenamiento de diagnóstico.

gcloud dataproc clusters diagnose CLUSTER_NAME \
    --region=REGION \
    OPTIONAL FLAGS ...

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:

    • --job-ids: Puedes usar esta marca para recopilar registros de salida del controlador de trabajo, del evento de Spark, de la aplicación de YARN y de Spark Lense, además de los archivos de registro predeterminados, para una lista especificada de IDs de trabajo separados por comas. 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 para la recopilación de registros de la aplicación de YARN.

    • --yarn-application-ids: Puedes usar esta marca para recopilar registros de salida del controlador de trabajo, del evento de Spark, de la aplicación de YARN y de Lense de Spark, además de los archivos de registro predeterminados, para una lista especificada de IDs de aplicación de YARN separados por comas. La agregación de registros de YARN debe estar habilitada para la recopilación de registros de la aplicación de YARN.

    • --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 escalamiento automático de Dataproc durante ese período (de forma predeterminada, los registros de escalamiento automático de Dataproc no se recopilan en los datos 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 de Google Cloud. También proporciona la siguiente información al equipo de asistencia de Google Cloud:

      • 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

Ejecuta la secuencia de comandos de diagnóstico desde el nodo instancia principal del clúster (si es necesario)

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 conectarte al nodo instancia principal del clúster con SSH, descargar la secuencia de comandos de diagnóstico y, luego, ejecutarla 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 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.

Cómo compartir datos de diagnóstico

Para compartir el archivo, sigue estos pasos:

Ejemplo: El siguiente comando agrega permisos de lectura al archivo para un usuario jane@gmail.com:

gcloud storage objects update PATH_TO_ARCHIVE} --add-acl-grant=entity=user-jane@gmail.com,role=roles/storage.legacyObjectReader

Resumen del diagnóstico y contenido del archivo

El comando diagnose genera un resumen de diagnóstico y un archivo tar de almacenamiento que contiene archivos de configuración del clúster, registros y otros archivos y datos. El archivo tar del archivo se escribe en el bucket de preparación de Dataproc en Cloud Storage.

Resumen del diagnóstico: La secuencia de comandos de diagnóstico analiza los datos recopilados y genera un summary.txt en la raíz del archivo de diagnóstico. En el resumen, se proporciona una descripción general del estado del clúster, incluidos YARN, HDFS, disco y estado de las redes, y también incluye advertencias para alertarte sobre posibles problemas.

Archivo tar del archivo: En las siguientes secciones, se enumeran los archivos y la información que contiene el archivo tar del archivo de diagnóstico.

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_AGENT_PID}" jstack/agent_${DATAPROC_AGENT_PID}.jstack
jstack -l "${PRESTO_PID}" jstack/agent_${PRESTO_PID}.jstack
jstack -l "${JOB_DRIVER_PID}" jstack/driver_${JOB_DRIVER_PID}.jstack
jinfo "${DATAPROC_AGENT_PID}" jinfo/agent_${DATAPROC_AGENT_PID}.jstack
jinfo "${PRESTO_PID}" jinfo/agent_${PRESTO_PID}.jstack
jinfo "${JOB_DRIVER_PID}" 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

Archivos de registro

Elementos incluidos 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/