Diagnostiquer des clusters Dataproc

"Récapitulatif des diagnostics de la commande de cluster Dataproc | Google Cloud"

Vous pouvez exécuter gcloud dataproc clusters diagnose pour collecter les journaux système, Spark, Hadoop et Dataproc, les fichiers de configuration des clusters, et d'autres informations que vous pouvez consulter ou partager avec l'assistance Google pour vous aider à dépanner un cluster ou un job Dataproc. La commande importe les données de diagnostic et le résumé. dans le bucket de préproduction Dataproc dans Cloud Storage.

Exécuter la commande de diagnostic du cluster Google Cloud CLI

Exécutez la commande gcloud dataproc clusters diagnose pour créer et afficher l'emplacement du fichier d'archive de diagnostic.

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

Remarques :

  • CLUSTER_NAME: nom du cluster à diagnostiquer.
  • REGION: région du cluster (par exemple, us-central1)
  • OPTIONAL FLAGS :

    • --job-ids : vous pouvez utiliser cet indicateur pour collecter les journaux du pilote de tâche, de l'événement Spark, de l'application YARN et de la sortie de Spark Lens, en plus des fichiers journaux par défaut, pour une liste d'ID de tâche spécifiée, séparée par une virgule. Pour les tâches MapReduce, seuls les journaux d'application YARN sont collectés. L'agrégation des journaux YARN doit être activée pour la collecte des journaux d'application YARN.

    • --yarn-application-ids : vous pouvez utiliser cet indicateur pour collecter les journaux de sortie du pilote de tâche, de l'événement Spark, de l'application YARN et de Spark Lense en plus des fichiers journaux par défaut, pour une liste d'ID d'application YARN spécifiée, séparée par une virgule. L'agrégation des journaux YARN doit être activée pour la collecte des journaux d'application YARN.

    • --start-time avec --end-time : utilisez les deux indicateurs pour spécifier une plage de temps, au format %Y-%m-%dT%H:%M:%S.%fZ, pour la collecte des données de diagnostic. Spécifier une plage de dates permet également de collecter les journaux d'autoscaling Dataproc pendant cette période (par défaut, les journaux d'autoscaling Dataproc ne sont pas collectés dans les données de diagnostic).

    • --tarball-access=GOOGLE_DATAPROC_DIAGNOSE Utilisez cet indicateur pour envoyer l'élément ou lui donner accès de diagnostic au équipe d'assistance Google Cloud. Fournissez également les informations suivantes à l'équipe d'assistance Google Cloud:

      • Chemin d'accès Cloud Storage du fichier tar de diagnostic, ou
      • le bucket de configuration du cluster, l'UUID du cluster et l'ID d'opération de la commande "diagnose"

Exécutez le script de diagnostic à partir du nœud maître du cluster (si nécessaire).

La commande gcloud dataproc clusters diagnose peut échouer ou expirer si un cluster se trouve en état d'erreur et ne peut pas accepter les tâches de diagnostic du serveur Dataproc. Au lieu d'exécuter diagnostic, vous pouvez vous connecter en SSH au nœud maître du cluster ; téléchargez le script de diagnostic, puis exécutez-le localement sur le nœud maître.

gcloud compute ssh HOSTNAME
gcloud storage cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh

Le fichier tar de l'archive de diagnostic est enregistré dans un répertoire local. La sortie de la commande indique l'emplacement du fichier tar, ainsi que des instructions pour l'importer dans un bucket Cloud Storage.

Partager les données de diagnostic

Pour partager l'archive :

Exemple : La commande suivante ajoute des autorisations de lecture à l'archive pour un utilisateur jane@gmail.com :

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

Résumé du diagnostic et contenus de l'archive

La commande diagnose génère un résumé du diagnostic et un fichier tar d'archive contenant les fichiers de configuration du cluster, les journaux, et d'autres fichiers et informations. L'archive tar est écrit dans Dataproc bucket de préproduction dans Cloud Storage.

Résumé du diagnostic:le script de diagnostic analyse les données collectées et génère un summary.txt à la racine de l'archive de diagnostic. Le résumé fournit une Présentation de l'état des clusters, y compris YARN, HDFS, disque et mise en réseau et comprend des avertissements pour vous alerter en cas de problèmes potentiels.

Fichier tar d'archive : les sections suivantes répertorient les fichiers et les informations contenus dans le fichier tar d'archive de diagnostic.

Informations sur les services et daemons

Commande exécutée Emplacement dans l'archive
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

Informations sur la JVM

Commande exécutée Emplacement dans l'archive
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

Informations sur le système Linux

Commande exécutée Emplacement dans l'archive
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

Fichiers journaux

Élément(s) inclus Emplacement dans l'archive
Tous les journaux de /var/log dont le nom de fichier comporte le préfixe suivant:
cloud-sql-proxy
dataproc
druid
gcdp
google
hadoop
hdfs
hive
knox
presto
spark
syslog
yarn
zookeeper
Les fichiers sont placés dans le dossier d'archive logs et conservent leur nom d'origine.
Journaux de démarrage de nœuds Dataproc pour chaque nœud (maîtres et de calcul) de votre cluster. Les fichiers sont placés dans le dossier d'archive node_startup, qui contient des sous-dossiers distincts pour chaque machine du cluster.
Journaux de la passerelle des composants filtrés par la commande journalctl -u google-dataproc-component-gateway /logs/google-dataproc-component-gateway.log

Fichiers de configuration

Élément(s) inclus Emplacement dans l'archive
Métadonnées de la VM /conf/dataproc/metadata
Variables d'environnement de /etc/environment /conf/dataproc/environment
Propriétés Dataproc /conf/dataproc/dataproc.properties
Tous les fichiers de /etc/google-dataproc/ /conf/dataproc/
Tous les fichiers de /etc/hadoop/conf/ /conf/hadoop/
Tous les fichiers de /etc/hive/conf/ /conf/hive/
Tous les fichiers de /etc/hive-hcatalog/conf/ /conf/hive-hcatalog/
Tous les fichiers de /etc/knox/conf/ /conf/knox/
Tous les fichiers de /etc/pig/conf/ /conf/pig/
Tous les fichiers de /etc/presto/conf/ /conf/presto/
Tous les fichiers de /etc/spark/conf/ /conf/spark/
Tous les fichiers de /etc/tez/conf/ /conf/tez/
Tous les fichiers de /etc/zookeeper/conf/ /conf/zookeeper/