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:
- Descarga el archivo desde Cloud Storage y, luego, compártelo.
- Cambia los permisos en el archivo para permitir que otros proyectos o usuarios de Google Cloud tengan acceso al archivo.
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/ |