HDFS
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

HDFS

Intégration DataNode HDFS

Dashboard HDFS

Présentation

Surveillez l’utilisation du disque et les volumes ayant échoué sur chacun de vos DataNodes HDFS. Ce check de l’Agent recueille des métriques pour ces derniers, ainsi que des métriques liées aux blocs et au cache.

Utilisez ce check (hdfs_datanode) et son check complémentaire (hdfs_namenode), et non l’ancien check deux-en-un (hdfs), désormais obsolète.

Implémentation

Suivez les instructions ci-dessous pour installer et configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer ces instructions à un environnement conteneurisé.

Installation

Le check HDFS DataNode est inclus avec le paquet de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur vos DataNodes.

Configuration

Préparer le DataNode

  1. L’Agent recueille des métriques à partir de l’interface distante JMX de DataNode. L’interface est désactivée par défaut. Activez-la en définissant l’option suivante dans hadoop-env.sh (qui se trouve généralement dans $HADOOP_HOME/conf) :

    export HADOOP_DATANODE_OPTS="-Dcom.sun.management.jmxremote
     -Dcom.sun.management.jmxremote.authenticate=false
     -Dcom.sun.management.jmxremote.ssl=false
     -Dcom.sun.management.jmxremote.port=50075 $HADOOP_DATANODE_OPTS"
  2. Redémarrez le processus DataNode pour activer l’interface JMX.

Associer l’Agent

Host

Suivez les instructions ci-dessous pour installer et configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la section Environnement conteneurisé pour en savoir plus sur les environnements conteneurisés.

  1. Modifiez le fichier hdfs_datanode.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Consultez le fichier d’exemple hdfs_datanode.d/conf.yaml pour découvrir toutes les options de configuration disponibles :

    init_config:
    
    instances:
     ## @param hdfs_datanode_jmx_uri - string - required
     ## The HDFS DataNode check retrieves metrics from the HDFS DataNode's JMX
     ## interface via HTTP(S) (not a JMX remote connection). This check must be installed on a HDFS DataNode. The HDFS
     ## DataNode JMX URI is composed of the DataNode's hostname and port.
     ##
     ## The hostname and port can be found in the hdfs-site.xml conf file under
     ## the property dfs.datanode.http.address
     ## https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
     #
     - hdfs_datanode_jmx_uri: http://localhost:50075
  2. Redémarrez l’Agent.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

ParamètreValeur
<NOM_INTÉGRATION>hdfs_datanode
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"hdfs_datanode_jmx_uri": "http://%%host%%:50075"}

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans le fichier datadog.yaml avec :

      logs_enabled: true
  2. Ajoutez ce bloc de configuration à votre fichier hdfs_datanode.d/conf.yaml pour commencer à recueillir vos logs DataNode :

      logs:
        - type: file
          path: /var/log/hadoop-hdfs/*.log
          source: hdfs_datanode
          service: <SERVICE_NAME>

    Modifiez les valeurs des paramètres path et service et configurez-les pour votre environnement.

  3. Redémarrez l’Agent.

Validation

Lancez la sous-commande status de l’Agent et cherchez hdfs_datanode dans la section Checks.

Données collectées

Métriques

hdfs.datanode.dfs_remaining
(gauge)
The remaining disk space left in bytes
Shown as byte
hdfs.datanode.dfs_capacity
(gauge)
Disk capacity in bytes
Shown as byte
hdfs.datanode.dfs_used
(gauge)
Disk usage in bytes
Shown as byte
hdfs.datanode.cache_capacity
(gauge)
Cache capacity in bytes
Shown as byte
hdfs.datanode.cache_used
(gauge)
Cache used in bytes
Shown as byte
hdfs.datanode.num_failed_volumes
(gauge)
Number of failed volumes
hdfs.datanode.last_volume_failure_date
(gauge)
The date/time of the last volume failure in milliseconds since epoch
Shown as millisecond
hdfs.datanode.estimated_capacity_lost_total
(gauge)
The estimated capacity lost in bytes
Shown as byte
hdfs.datanode.num_blocks_cached
(gauge)
The number of blocks cached
Shown as block
hdfs.datanode.num_blocks_failed_to_cache
(gauge)
The number of blocks that failed to cache
Shown as block
hdfs.datanode.num_blocks_failed_to_uncache
(gauge)
The number of failed blocks to remove from cache
Shown as block

Événements

Le check HDFS DataNode n’inclut aucun événement.

Checks de service

hdfs.datanode.jmx.can_connect :
Renvoie Critical si l’Agent ne parvient pas à se connecter à l’interface JMX de DataNode pour une raison quelconque (p. ex, mauvais port fourni, délai d’expiration dépassé, impossibilité de parser la réponse JSON).

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin

Intégration NameNode HDFS

Dashboard HDFS

Présentation

Surveillez vos NameNodes HDFS primaires et secondaires pour savoir si votre cluster est en situation précaire, c’est-à-dire s’il ne reste plus qu’un seul NameNode ou si vous devez renforcer les capacités du cluster. Ce check de l’Agent recueille des métriques pour la capacité restante, les blocs corrompus/manquants, les DataNodes morts, la charge du système de fichiers, les blocs sous-répliqués, les échecs de volumes totaux (sur tous les DataNodes), et bien plus encore.

Utilisez ce check (hdfs_namenode) et son check complémentaire (hdfs_datanode), et non l’ancien check deux-en-un (hdfs) qui est obsolète.

Configuration

Suivez les instructions ci-dessous pour installer et configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer ces instructions à un environnement conteneurisé.

Installation

Le check HDFS NameNode est inclus avec le paquet de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur vos NameNodes.

Configuration

Préparer le NameNode

  1. L’Agent recueille des métriques à partir de l’interface distante JMX de NameNode. L’interface est désactivée par défaut. Activez-la en définissant l’option suivante dans hadoop-env.sh (qui se trouve généralement dans \$HADOOP_HOME/conf) :

    export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote
      -Dcom.sun.management.jmxremote.authenticate=false
      -Dcom.sun.management.jmxremote.ssl=false
      -Dcom.sun.management.jmxremote.port=50070 $HADOOP_NAMENODE_OPTS"
  2. Redémarrez le processus NameNode pour activer l’interface JMX.

Associer l’Agent

Host

Suivez les instructions ci-dessous pour configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la section Environnement conteneurisé pour en savoir plus sur les environnements conteneurisés.

  1. Modifiez le fichier hdfs_namenode.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Consultez le fichier d’exemple hdfs_namenode.d/conf.yaml pour découvrir toutes les options de configuration disponibles :

    init_config:
    
    instances:
     ## @param hdfs_namenode_jmx_uri - string - required
     ## The HDFS NameNode check retrieves metrics from the HDFS NameNode's JMX
     ## interface via HTTP(S) (not a JMX remote connection). This check must be installed on
     ## a HDFS NameNode. The HDFS NameNode JMX URI is composed of the NameNode's hostname and port.
     ##
     ## The hostname and port can be found in the hdfs-site.xml conf file under
     ## the property dfs.namenode.http-address
     ## https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
     #
     - hdfs_namenode_jmx_uri: http://localhost:50070
  2. Redémarrez l’Agent.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

ParamètreValeur
<NOM_INTÉGRATION>hdfs_namenode
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"hdfs_namenode_jmx_uri": "https://%%host%%:50070"}

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans le fichier datadog.yaml avec :

      logs_enabled: true
  2. Ajoutez ce bloc de configuration à votre fichier hdfs_namenode.d/conf.yaml pour commencer à recueillir vos logs NameNode :

      logs:
        - type: file
          path: /var/log/hadoop-hdfs/*.log
          source: hdfs_namenode
          service: <SERVICE_NAME>

    Modifiez les valeurs des paramètres path et service et configurez-les pour votre environnement.

  3. Redémarrez l’Agent.

Validation

Lancez la sous-commande status de l’Agent et cherchez hdfs_namenode dans la section Checks.

Données collectées

Métriques

hdfs.namenode.capacity_total
(gauge)
Total disk capacity in bytes
Shown as byte
hdfs.namenode.capacity_used
(gauge)
Disk usage in bytes
Shown as byte
hdfs.namenode.capacity_remaining
(gauge)
Remaining disk space left in bytes
Shown as byte
hdfs.namenode.total_load
(gauge)
Total load on the file system
hdfs.namenode.fs_lock_queue_length
(gauge)
Lock queue length
hdfs.namenode.blocks_total
(gauge)
Total number of blocks
Shown as block
hdfs.namenode.max_objects
(gauge)
Maximum number of files HDFS supports
Shown as object
hdfs.namenode.files_total
(gauge)
Total number of files
Shown as file
hdfs.namenode.pending_replication_blocks
(gauge)
Number of blocks pending replication
Shown as block
hdfs.namenode.under_replicated_blocks
(gauge)
Number of under replicated blocks
Shown as block
hdfs.namenode.scheduled_replication_blocks
(gauge)
Number of blocks scheduled for replication
Shown as block
hdfs.namenode.pending_deletion_blocks
(gauge)
Number of pending deletion blocks
Shown as block
hdfs.namenode.num_live_data_nodes
(gauge)
Total number of live data nodes
Shown as node
hdfs.namenode.num_dead_data_nodes
(gauge)
Total number of dead data nodes
Shown as node
hdfs.namenode.num_decom_live_data_nodes
(gauge)
Number of decommissioning live data nodes
Shown as node
hdfs.namenode.num_decom_dead_data_nodes
(gauge)
Number of decommissioning dead data nodes
Shown as node
hdfs.namenode.volume_failures_total
(gauge)
Total volume failures
hdfs.namenode.estimated_capacity_lost_total
(gauge)
Estimated capacity lost in bytes
Shown as byte
hdfs.namenode.num_decommissioning_data_nodes
(gauge)
Number of decommissioning data nodes
Shown as node
hdfs.namenode.num_stale_data_nodes
(gauge)
Number of stale data nodes
Shown as node
hdfs.namenode.num_stale_storages
(gauge)
Number of stale storages
hdfs.namenode.missing_blocks
(gauge)
Number of missing blocks
Shown as block
hdfs.namenode.corrupt_blocks
(gauge)
Number of corrupt blocks
Shown as block

Événements

Le check HDFS NameNode n’inclut aucun événement.

Checks de service

hdfs.namenode.jmx.can_connect :
Renvoie Critical si l’Agent ne parvient pas à se connecter à l’interface JMX de NameNode pour une raison quelconque (p. ex, mauvais port fourni, délai d’expiration dépassé, impossibilité de parser la réponse JSON).

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin