Comando de diagnóstico de clústeres de Dataproc

“Resumen del diagnóstico de comandos del clúster de Dataproc | Google Cloud”

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

Ejecuta el comando de diagnóstico del clúster de Google Cloud CLI

Ejecuta el comando gcloud dataproc clusters diagnose para crear y obtener la ubicación del archivo 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: La región del clúster, por ejemplo, us-central1
  • OPTIONAL FLAGS:

    • --job-ids: Puedes usar esta marca para recopilar registros de salida del controlador de trabajos, eventos de Spark, YARN y Lense de Spark, además de los archivos de registro predeterminados, para una lista específica de los IDs de trabajo separados por comas. Para los trabajos de MapReduce, solo se recopilan los registros de la aplicación YARN. La agregación de registros de YARN debe estar habilitada para la recopilación de registros de aplicaciones de YARN.

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

    • --start-time con --end-time: Usa ambas marcas a fin de especificar un intervalo de tiempo, en formato %Y-%m-%dT%H:%M:%S.%fZ, para la recopilación de datos de diagnóstico. Especificar un intervalo de tiempo también permite la recopilación de registros de ajuste de escala automático de Dataproc durante el intervalo de tiempo (de forma predeterminada, los registros de ajuste de escala 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. Además, proporciona la siguiente información al equipo de asistencia al cliente de Google Cloud:

      • La ruta de Cloud Storage del archivo tar de diagnóstico; o
      • El bucket de configuración del clúster, el UUID del clúster y el ID de operación del comando de diagnóstico

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

El comando gcloud dataproc clusters diagnose puede fallar o agotar el tiempo de espera si un clúster se encuentra en estado de error y no puede aceptar tareas de diagnóstico del servidor de Dataproc. Como alternativa a ejecutar el comando de diagnóstico, puedes conectarte al nodo de la instancia principal del clúster con SSH, descargar la secuencia de comandos de diagnóstico y, luego, ejecutarla de forma local en ese nodo.

gcloud compute ssh HOSTNAME
gsutil 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 muestra la ubicación del archivo tar con instrucciones para subirlo a un bucket de Cloud Storage.

Cómo compartir los datos de diagnóstico

Para compartir el archivo, sigue estos pasos:

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}

Resumen del diagnóstico y contenido del archivo

El comando diagnose genera un resumen de diagnóstico y un archivo tar que contiene archivos de configuración del clúster, registros y otros archivos e información. El archivo tar se escribe en el bucket de staging 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. El resumen proporciona una descripción general del estado del clúster, incluidos el estado de YARN, HDFS, disco y red, y también incluye advertencias para alertarte sobre posibles problemas.

Archivar archivo tar: En las siguientes secciones, se enumeran los archivos y la información que se incluye en el archivo tar 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 el 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/