Cette page a été traduite par l'API Cloud Translation.
Switch to English

Diagnostiquer des clusters Dataproc

Les informations de journal et de configuration peuvent être utiles pour résoudre les problèmes liés à un cluster ou à une tâche. Malheureusement, il existe de nombreux fichiers journaux et de configuration, et obtenir chacun des fichiers pour l'enquête peut demander beaucoup de temps. Pour résoudre ce problème, les clusters Dataproc sont compatibles avec une commande diagnose spéciale via le SDK Cloud. Cette commande rassemble et archive des journaux système, Spark/Hadoop et Dataproc importants, puis importe l'archive dans le bucket Cloud Storage associé à votre cluster.

Utiliser la commande "diagnose" du SDK Cloud

Vous pouvez utiliser la commande diagnose du SDK Cloud sur vos clusters Dataproc (consultez la page Dataproc et SDK Cloud).

Une fois le SDK Cloud installé et configuré, 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 le nom et l'emplacement de l'archive contenant vos données.

...
Saving archive to cloud
Copying file:///tmp/tmp.FgWEq3f2DJ/diagnostic.tar ...
Uploading   ...23db9-762e-4593-8a5a-f4abd75527e6/diagnostic.tar ...
Diagnostic results saved in:
gs://bucket-name/.../cluster-uuid/.../job-id/diagnostic.tar
    ...
Dans cet exemple, bucket-name est le bucket Cloud Storage associé à votre cluster, cluster-uuid est l'ID unique (UUID) de votre cluster et job-id est l'UUID appartenant au tâche système ayant exécuté la commande de diagnostic.

Lorsque vous créez un cluster Dataproc, Dataproc crée un bucket Cloud Storage et l'associe à votre cluster. La commande de diagnostic génère le fichier d'archive dans ce bucket. Pour déterminer le nom du bucket créé par Dataproc, exécutez la commande clusters describe du SDK Cloud. Le bucket associé à votre cluster est répertorié à côté de configurationBucket.

gcloud dataproc clusters describe cluster-name \
    --region=region \
...
  clusterName: cluster-name
  clusterUuid: daa40b3f-5ff5-4e89-9bf1-bcbfec6e0eac
  configuration:
  configurationBucket: dataproc-edc9d85f-...-us
  ...

Exécuter le script de diagnostic à partir du nœud maître (facultatif)

La commande "diagnose" du SDK Cloud peut échouer ou arriver à expiration si un cluster présente un état d'erreur et ne peut pas accepter de 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 exécuter le script 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 tarball de diagnostic est 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 la 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 :

  1. Téléchargez le fichier depuis Cloud Storage, puis partagez l'archive téléchargée.
  2. Modifiez les autorisations sur l'archive pour autoriser d'autres utilisateurs ou projets 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 inclut 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 le bucket Cloud Storage associé à votre cluster Dataproc, comme indiqué ci-dessus.

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 des 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/