Dataproc collecte les données de diagnostic de cluster suivantes pour vous aider à résoudre les problèmes liés aux clusters et aux tâches:
- Données de point de contrôle : lorsque cette option est activée, Dataproc collecte et met à jour les données de diagnostic tout au long du cycle de vie d'un cluster.
- Données d'instantané : vous pouvez collecter un instantané des données de diagnostic du cluster à partir d'un cluster en cours d'exécution.
Données de point de contrôle
Lorsque la fonctionnalité de données de point de contrôle est activée, Dataproc collecte des données de diagnostic lors de la création de clusters, de la mise à jour de clusters et des opérations de l'API Jobs Dataproc. Dataproc enregistre les données dans le cluster temp bucket
dans Cloud Storage, qui a une période de rétention TTL de 90 jours. Les données sont supprimées à la fin de la période de conservation.
Activer les propriétés de collecte des données : vous pouvez inclure les propriétés de cluster facultatives suivantes lorsque vous créez un cluster. Elles n'affectent que la collecte des données de diagnostic de point de contrôle sur le cluster créé.
- Activer la collecte de données:le fait de définir la propriété
dataproc:diagnostic.capture.enabled=true
permet de collecter les données de diagnostic du point de contrôle sur le cluster. - Partager les données de diagnostic:le paramètre de la propriété
dataproc:diagnostic.capture.access=GOOGLE_DATAPROC_DIAGNOSE
partage les données de diagnostic du point de contrôle collectées avec l'assistanceGoogle Cloud .- Après avoir créé un cluster, vous pouvez partager les données de diagnostic avec l'assistance Google Cloud en accordant un accès en lecture aux données au compte de service utilisé par l'assistance Google Cloud , comme suit:
gsutil -m acl ch -r -u \ cloud-diagnose@cloud-dataproc.iam.gserviceaccount.com:R \ gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID
- Après avoir créé un cluster, vous pouvez partager les données de diagnostic avec l'assistance Google Cloud en accordant un accès en lecture aux données au compte de service utilisé par l'assistance Google Cloud , comme suit:
Données de diagnostic
Les données de diagnostic se composent des données suivantes écrites dans gs://TEMP_BUCKET/google-cloud-dataproc-diagnostic/CLUSTER_UUID/
dans Cloud Storage. Cet emplacement est appelé dossier de données de diagnostic dans cette section.
Journaux de détails des nœuds de cluster:Dataproc exécute les commandes suivantes pour collecter et écrire des informations YARN et HDFS aux emplacements suivants dans le dossier de données de diagnostic de Cloud Storage.
Commande exécutée Emplacement dans le dossier de diagnostic yarn node -list -all
.../nodes/timestamp/yarn-nodes.log
hdfs dfsadmin -report -live -decommissioning
.../nodes/timestamp/hdfs-nodes.log
Détails de la tâche:Dataproc enregistre les informations sur les tâches MapReduce et les journaux de tâches Spark pour les tâches utilisant l'API Dataproc Jobs. Ces données de tâche sont collectées pour chaque tâche MR et Spark envoyée.
job.xml
MapReduce: fichier contenant les paramètres de configuration de la tâche, enregistrés dans.../jobs/JOB_UUID/mapreduce/job.xml
.- Journaux d'événements Spark: détails de l'exécution de la tâche utiles pour le débogage, enregistrés dans
.../jobs/JOB_UUID/spark/application-id
.
Informations système Linux:Dataproc exécute les commandes suivantes pour collecter et enregistrer les informations système aux emplacements suivants dans le dossier de données de diagnostic de Cloud Storage.
Commande Emplacement dans le dossier de diagnostic sysctl -a
.../system/sysctl.log
cat /proc/sys/fs/file-nr
.../system/fs-file-nr.log
ping -c 1
.../system/cluster-ping.log
cp /etc/hosts
.../system/hosts_entries.log
cp /etc/resolv.conf
.../system/resolv.conf
Fichiers de configuration:Dataproc enregistre les fichiers de configuration suivants aux emplacements suivants dans le dossier de données de diagnostic de Cloud Storage.
Élément(s) inclus Emplacement dans le dossier de diagnostic Propriétés Dataproc .../configs/dataproc/dataproc.properties
Tous les fichiers de
/etc/google-dataproc/.../configs/dataproc/
Tous les fichiers de
`/etc/hadoop/conf/`.../configs/hadoop/
Tous les fichiers de/etc/hive/conf/ .../configs/hive/
Tous les fichiers de
/etc/hive-hcatalog/conf/.../configs/hive-hcatalog/
Tous les fichiers de/etc/knox/conf/ .../configs/knox/
Tous les fichiers de/etc/pig/conf/ .../configs/pig/
Tous les fichiers de
`/etc/presto/conf/`.../configs/presto/
Tous les fichiers de
`/etc/spark/conf/`.../configs/spark/
Tous les fichiers de/etc/tez/conf/ .../configs/tez/
Tous les fichiers de
/etc/zookeeper/conf/.../configs/zookeeper/
Données d'instantané
Vous pouvez exécuter la commande gcloud dataproc clusters diagnose
suivante pour collecter un instantané des données de diagnostic à partir d'un cluster en cours d'exécution. Les données sont écrites sous forme de fichier d'archive (tar) dans le bucket de préproduction Dataproc dans Cloud Storage.
gcloud dataproc clusters diagnose CLUSTER_NAME \ --region=REGION \ --tarball-access=GOOGLE_DATAPROC_DIAGNOSE
Remarques :
- CLUSTER_NAME: nom du cluster à diagnostiquer.
- REGION: région du cluster (par exemple,
us-central1
). OPTIONAL FLAGS :
Vous pouvez utiliser l'un des deux indicateurs suivants pour collecter des journaux de sortie spécifiques pour le pilote de tâche, l'événement Spark, l'application YARN et Sparklens. Remarques :
- L'agrégation des journaux YARN doit être activée (
yarn.log-aggregation-enable=true
) pour la collecte des journaux d'application YARN. Pour les tâches MapReduce, seuls les journaux d'application YARN sont collectés.
--job-ids
: liste d'ID de tâches séparés par une virgule.--yarn-application-ids
: liste d'ID d'application YARN séparés par une virgule.
- L'agrégation des journaux YARN doit être activée (
--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 d'instantané de diagnostic).--tarball-access
=GOOGLE_DATAPROC_DIAGNOSE
Utilisez cet indicateur pour envoyer ou fournir un accès au fichier tar de diagnostic à l'assistanceGoogle Cloud . Fournissez également les informations suivantes au service 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
Si nécessaire, exécutez le script de diagnostic
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 la commande de diagnostic, vous pouvez utiliser SSH pour vous connecter au nœud maître du cluster, 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 d'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.
Données d'instantané de diagnostic
Les données de l'instantané du cluster incluent un résumé des diagnostics et plusieurs sections d'archives.
Résumé des diagnostics:le fichier d'archive inclut summary.txt
, qui se trouve à la racine de l'archive. Il fournit une vue d'ensemble de l'état du cluster, y compris YARN, HDFS, disque et réseau, et inclut des avertissements pour vous avertir des problèmes potentiels.
Sections d'archive:le fichier d'archive inclut les informations suivantes, qui sont écrites aux emplacements de fichier d'archive suivants.
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_AGENTPID}"
jstack/agent${DATAPROC_AGENT_PID}.jstack
jstack -l "${PRESTOPID}"
jstack/agent${PRESTO_PID}.jstack
jstack -l "${JOB_DRIVERPID}"
jstack/driver${JOB_DRIVER_PID}.jstack
jinfo "${DATAPROC_AGENTPID}"
jinfo/agent${DATAPROC_AGENT_PID}.jstack
jinfo "${PRESTOPID}"
jinfo/agent${PRESTO_PID}.jstack
jinfo "${JOB_DRIVERPID}"
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
Élément inclus Emplacement dans l'archive Tous les journaux de /var/log
dont le nom commence par :
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/
Partager le fichier d'archive
Vous pouvez partager le fichier d'archive avec l'assistance Google Cloud ou des utilisateurs pour obtenir de l'aide pour résoudre les problèmes liés au cluster ou aux tâches.
Pour partager le fichier d'archive:
- Copiez le fichier d'archive depuis Cloud Storage, puis partagez l'archive téléchargée.
Modifiez les autorisations sur l'archive pour autoriser d'autres Google Cloud utilisateurs ou projets à accéder au fichier.
Exemple: La commande suivante ajoute des autorisations en lecture à l'archive dans
test-project
:gsutil -m acl ch -g test-project:R PATH_TO_ARCHIVE}