Commande Dataproc "diagnose clusters"

"Récapitulatif du diagnostic des commandes de cluster Dataproc | Google Cloud"

Vous pouvez exécuter la commande gcloud dataproc clusters diagnose pour collecter les journaux système, Spark, Hadoop et Dataproc, les fichiers de configuration du cluster, ainsi que d'autres informations que vous pouvez examiner ou partager avec l'assistance Google afin de résoudre les problèmes liés à un cluster ou une tâche 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 "diagnose cluster" (diagnostiquer le cluster) de la 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: cette option permet de collecter les journaux de sortie du pilote de tâche, des événements Spark, de l'application YARN et de Spark Lens, en plus des fichiers journaux par défaut, pour une liste spécifiée d'ID de tâches séparés 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: cette option permet de collecter les journaux de sortie du pilote de tâche, des événements Spark, de l'application YAML et de Spark Lens en plus des fichiers journaux par défaut, pour une liste spécifiée d'ID d'application YARN séparés par une virgule. L'agrégation des journaux YARN doit être activée pour la collecte des journaux d'application YAML.

    • --start-time avec --end-time: utilisez les deux options pour spécifier une période, au format %Y-%m-%dT%H:%M:%S.%fZ, pour la collecte des données de diagnostic. La spécification d'une période active également la collecte des 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 cette option pour envoyer le fichier tar de diagnostic à l'équipe d'assistance Google Cloud ou lui donner accès à ce fichier. Fournissez également les informations suivantes à l'équipe d'assistance Google Cloud:

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

Exécuter 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 est en état d'erreur et ne peut pas accepter de tâches de diagnostic du serveur Dataproc. Au lieu d'exécuter la commande "diagnose", vous pouvez vous connecter au nœud maître du cluster à l'aide de SSH, télécharger le script de diagnostic, puis l'exécuter localement sur le nœud maître.

gcloud compute ssh HOSTNAME
gsutil 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. Le résultat de la commande indique l'emplacement du fichier tar et fournit des instructions pour l'importer dans un bucket Cloud Storage.

Partager des données de diagnostic

Pour partager l'archive:

Exemple: La commande suivante ajoute des autorisations de lecture à l'archive dans un test-project:

gsutil -m acl ch -g test-project:R PATH_TO_ARCHIVE}

Récapitulatif du diagnostic et contenu de l'archive

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

Résumé de 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. Ce récapitulatif fournit une vue d'ensemble de l'état du cluster, y compris l'état du disque, du disque, du réseau YARN et HDFS, et inclut des avertissements pour vous alerter en cas de problèmes potentiels.

Fichier tar d'archives: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 avec les préfixes suivants dans leur nom de fichier:
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/