Diagnostiquer des clusters Dataproc

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 Cloud Dataproc sont compatibles avec la commande spéciale diagnose via le SDK 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 "diagnose"

Vous pouvez utiliser la commande diagnose du SDK Cloud sur vos clusters Cloud Dataproc (consultez la section 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 affiche 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 à la tâche système qui a exécuté la commande de diagnostic.

Lorsque vous créez un cluster Cloud Dataproc, un bucket Cloud Storage est automatiquement créé et associé à votre cluster. La commande "diagnose" affiche le fichier d'archive à ce bucket. Pour déterminer le nom du bucket créé par Cloud Dataproc, utilisez 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
  ...

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 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 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.

Informations sur le daemon et sur l'état

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
service --status-all /system/service.log
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 :
gcs
google
gcdp
hadoop
hdfs
hive
spark
syslog
yarn
Les fichiers sont placés dans le dossier d'archive logs et conservent leur nom d'origine.
Journaux de démarrage de nœuds Cloud 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.

Fichiers de configuration

Élément(s) inclus Emplacement dans l'archive
Tous les fichiers de /etc/hadoop/conf/ Les fichiers sont placés dans le dossier d'archive hadoop_conf et conservent leur nom d'origine.