Les informations de journal et de configuration peuvent aider à la résolution de problèmes liés aux clusters ou aux tâches. Toutefois, les fichiers journaux et fichiers de configuration sont nombreux. Rassembler chaque fichier à des fins d'enquête peut prendre beaucoup de temps. Pour résoudre ce problème, les clusters Dataproc sont compatibles avec une commande diagnose
spéciale via la CLI Google Cloud. Cette commande rassemble et archive des journaux importants du système, de Spark/Hadoop et de Cloud Dataproc. Elle importe ensuite l'archive dans le bucket Cloud Storage associé à votre cluster.
Utiliser la commande de diagnostic de la CLI Google Cloud
Vous pouvez utiliser la commande CLI Google Cloud diagnose
sur vos clusters Dataproc (consultez la page CLI Dataproc et Google Cloud).
Une fois la CLI gcloud
installée et configurée, vous pouvez exécuter la commande gcloud dataproc clusters diagnose
sur votre cluster comme indiqué ci-dessous. Remplacez cluster-name par le nom de votre cluster et region par la région de votre cluster, par exemple, --region=us-central1
.
gcloud dataproc clusters diagnose cluster-name \ --region=region \ ... other args ...
La commande génère l'emplacement Cloud Storage du fichier d'archive contenant les données (consultez Éléments inclus dans le résultat de la commande de diagnostic). Pour en savoir plus sur l'accès au fichier d'archive et sa copie, consultez la section Partager les données collectées par diagnostic.
Exécuter le script de diagnostic à partir du nœud maître (facultatif)
La commande de diagnostic de la CLI Google Cloud peut échouer ou expirer si un cluster est en état d'erreur et ne peut pas accepter les tâches de diagnostic du serveur Dataproc. Pour éviter ce problème, vous pouvez vous connecter en SSH au nœud maître, 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 package tarball de diagnostic sera enregistré dans un répertoire temporaire local. Si vous le souhaitez, vous pouvez suivre les instructions du résultat de la commande pour l'importer dans un bucket Cloud Storage et le partager avec l'assistance Google.
Partager des données collectées par la commande "diagnose"
.Vous pouvez partager l'archive générée par la commande diagnose
à l'aide des deux manières suivantes :
- Téléchargez le fichier depuis Cloud Storage, puis partagez l'archive téléchargée.
- Modifiez les autorisations sur l'archive pour autoriser d'autres utilisateurs ou projets de Google Cloud Platform à accéder au fichier.
Par exemple, la commande suivante ajoute des autorisations en lecture à l'archive "diagnose" dans test-project
:
gsutil -m acl ch -g test-project:R path-to-archive
Éléments inclus dans le résultat de la commande "diagnose"
La commande diagnose
diagnose rassemble dans un fichier d'archive les fichiers de configuration, journaux et résultats suivants issus de votre cluster. Le fichier d'archive est placé dans un bucket Cloud Storage associé à votre cluster Cloud Dataproc, comme indiqué ci-dessus.
Résumé de diagnostic
Le script de diagnostic analyse automatiquement les données collectées et génère un summary.txt
à la racine du package tarball de diagnostic. Le résumé fournit une vue d'ensemble de l'état du cluster, y compris YARN, HDFS, disque, réseau, etc. Il inclut des avertissements pour vous avertir des problèmes potentiels.
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 fichiers journaux de /var/log dont le nom commence par :cloud-sql-proxy dataproc druid gcdp gcs 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/ |