Ver información sobre el registro y la configuración puede ser útil para solucionar problemas de un clúster o trabajo. Desafortunadamente, hay muchos archivos de registro y configuración, y recopilar cada uno para su investigación puede llevar mucho tiempo. Para solucionar este problema, los clústeres de Dataproc admiten un comando especial diagnose
a través de la CLI de Google Cloud. Este comando recopila y archiva registros importantes del sistema, Spark/Hadoop y Dataproc y, luego, sube el archivo al bucket de Cloud Storage adjunto a tu clúster.
Usa el comando de diagnóstico de la CLI de Google Cloud
Puedes usar el comando diagnose
de la CLI de Google Cloud en tus clústeres de Dataproc (consulta CLI de Dataproc y Google Cloud).
Una vez que la CLI de gcloud
está instalada y configurada, puedes ejecutar el comando gcloud dataproc clusters diagnose
en tu clúster como se muestra a continuación. Reemplaza cluster-name por el nombre del clúster y region por la región del clúster, por ejemplo, --region=us-central1
.
gcloud dataproc clusters diagnose cluster-name \ --region=region \ ... other args ...
El comando genera la ubicación de Cloud Storage del archivo de almacenamiento que contiene los datos (consulta Elementos incluidos en el resultado del comando de diagnóstico). Consulta Cómo compartir los datos recopilados por el diagnóstico para obtener información sobre cómo acceder al archivo y copiarlo.
Ejecuta la secuencia de comandos de diagnóstico desde el nodo principal (opcional)
El comando de diagnóstico de la CLI de Google Cloud puede fallar o se agota el tiempo de espera si un clúster está en un estado de error y no puede aceptar tareas de diagnóstico del servidor de Dataproc. Para evitar este problema, puedes establecer una conexión SSH al nodo principal, descargar la secuencia de comandos de diagnóstico y, luego, ejecutar la secuencia de comandos 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 comprimido de diagnóstico se guardará en un directorio temporal local. Si lo deseas, puedes seguir las instrucciones en el resultado del comando para subirlos a un bucket de Cloud Storage y compartirlos con la Atención al cliente de Google.
Cómo compartir los datos recopilados por el diagnóstico
.Puedes compartir el archivo generado por el comando diagnose
de dos maneras:
- 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 Platform tengan acceso al archivo.
Por ejemplo, con el siguiente comando, se agregan permisos de lectura al archivo de diagnóstico en un test-project
:
gsutil -m acl ch -g test-project:R path-to-archive
Elementos incluidos en el resultado del comando de diagnóstico
El comando diagnose
incluye los siguientes registros, resultados y archivos de configuración de tu clúster en un archivo. El archivo se coloca en el bucket de Cloud Storage asociado con tu clúster de Dataproc, como se explicó anteriormente.
Resumen de diagnóstico
La secuencia de comandos de diagnóstico analiza de forma automática los datos recopilados y genera un summary.txt
en la raíz del archivo comprimido de diagnóstico. En el resumen, se proporciona una descripción general de alto nivel del estado de los clústeres, incluidos YARN, HDFS, disco, herramientas de redes, etc., y también incluye advertencias para alertarte sobre posibles problemas.
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 gcs 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/ |