Partager via


Optimiser Apache HBase avec Apache Ambari dans Azure HDInsight

Apache Ambari est une interface web qui permet de gérer et de superviser les clusters HDInsight. Pour avoir une présentation de l’interface utilisateur web d’Ambari, consultez Gérer des clusters HDInsight à l’aide de l’interface utilisateur web d’Apache Ambari.

La configuration d’Apache HBase peut être modifiée à partir de l’onglet HBase Configs. Les sections suivantes décrivent certains paramètres de configuration importants qui affectent les performances de HBase.

Définir HBASE_HEAPSIZE

Notes

Cet article contient des références au terme maître, un terme que Microsoft n’utilise plus. Lorsque le terme sera supprimé du logiciel, nous le supprimerons de cet article.

La taille de tas HBase spécifie la quantité maximale de tas à utiliser en mégaoctets par les serveurs de région et maîtres. La valeur par défaut est 1 000 Mo. Cette valeur doit être adaptée à la charge de travail du cluster.

  1. Pour la modifier, accédez au volet Advanced HBase-env (HBase-env avancé) dans l’onglet Configs (Configurations) et recherchez le paramètre HBASE_HEAPSIZE.

  2. Remplacez la valeur par défaut par 5 000 Mo.

    `Apache Ambari HBase memory heapsize`.

Optimiser les charges de travail nécessitant beaucoup de lectures

Les configurations suivantes sont importantes pour améliorer les performances des charges de travail nécessitant beaucoup de lectures.

Taille du cache de blocs

Le cache de blocs est le cache de lecture. Le paramètre hfile.block.cache.size contrôle la taille du cache de bloc. La valeur par défaut est de 0,4, soit 40 % de la mémoire totale du serveur de la région. Plus la taille du cache de blocs est importante, plus rapides sont les lectures aléatoires.

  1. Pour modifier ce paramètre, accédez à l’onglet Settings (Paramètres) dans l’onglet Configs (Configurations) de HBase, puis recherchez % of RegionServer Allocated to Read Buffers (% du serveur de région alloué aux mémoires tampons de lecture) .

    Apache HBase memory block cache size.

  2. Pour modifier la valeur, sélectionnez l’icône Edit (Modifier) .

Taille de memstore

Toutes les modifications sont stockées dans la mémoire tampon appelée Memstore. Cette mémoire tampon augmente la quantité totale de données qui peuvent être écrites sur le disque en une seule opération. Elle accélère également l’accès aux modifications récentes. La taille de Memstore définit les deux paramètres suivants :

  • hbase.regionserver.global.memstore.UpperLimit: définit le pourcentage maximal du serveur de région que Memstore peut utiliser.

  • hbase.regionserver.global.memstore.LowerLimit: définit le pourcentage minimal du serveur de région que Memstore peut utiliser.

Pour optimiser les lectures aléatoires, vous pouvez réduire les limites supérieure et inférieure de Memstore.

Nombre de lignes extraites lors de l’analyse du disque

Le paramètre hbase.client.scanner.caching définit le nombre de lignes lues sur le disque lorsque la méthode next est appelée sur un scanneur. La valeur par défaut est 100. Plus ce nombre est élevé, moins les appels distants effectués depuis le client vers le serveur de région sont nombreux, ce qui accélère l’analyse. Toutefois, ce paramètre augmente également la sollicitation de la mémoire sur le client.

Apache HBase number of rows fetched.

Important

Ne définissez pas une valeur qui rende le délai entre l’appel de la méthode suivante sur un scanneur supérieure au délai du scanneur. La durée d’expiration du scanneur est définie par la propriété hbase.regionserver.lease.period.

Optimiser les charges de travail nécessitant beaucoup d’écritures

Les configurations suivantes sont importantes pour améliorer les performances des charges de travail nécessitant beaucoup d’écritures.

Taille maximale du fichier de région

HBase stocke les données dans un format de fichier interne, appelé HFile. La propriété hbase.hregion.max.filesize définit la taille d’un fichier HFile unique pour une région. Une région est fractionnée en deux si la somme de tous les fichiers HFiles d’une région est supérieure à ce paramètre.

`Apache HBase HRegion max filesize`.

Plus la taille du fichier de région est importante, plus le nombre de fractionnements est réduit. Vous pouvez augmenter la taille du fichier pour déterminer une valeur qui optimise les performances d’écriture.

Éviter le blocage des mises à jour

  • La propriété hbase.hregion.memstore.flush.size définit la taille à laquelle Memstore est vidé sur le disque. La taille par défaut est de 128 Mo.

  • Le hbase.hregion.memstore.block.multiplier définit le multiplicateur de bloc de la région HBase. La valeur par défaut est 4. La valeur maximale autorisée est 8 Go.

  • HBase bloque les mises à jour si le paramètre Memstore est de (hbase.hregion.memstore.flush.size * hbase.hregion.memstore.block.multiplier) octets.

    Avec les valeurs par défaut de la taille de vidage et du multiplicateur de bloc, les mises à jour sont bloquées quand Memstore a une taille égale à 128 * 4 = 512 Mo. Pour réduire le nombre de blocages des mises à jour, augmentez la valeur de hbase.hregion.memstore.block.multiplier.

Apache HBase Region Block Multiplier.

Définir la taille de Memstore

Les paramètres hbase.regionserver.global.memstore.upperLimit et hbase.regionserver.global.memstore.lowerLimit définissent la taille de Memstore. En définissant deux valeurs égales, vous réduisez les pauses pendant les écritures (ce qui augmente la fréquence des vidages) et améliore les performances d’écriture.

Définir la mémoire tampon d’allocation locale de Memstore

La propriété hbase.hregion.memstore.mslab.enabled définit l’allocation locale de l’utilisation de la mémoire tampon Memstore. Lorsqu’il est activé (true), ce paramètre empêche la fragmentation des tas pendant une opération nécessitant beaucoup d’écritures. La valeur par défaut est true.

hbase.hregion.memstore.mslab.enabled.

Étapes suivantes