Tassements dans HBase

Compactage, le processus par lequel HBase nettoie après lui-même, est disponible en deux saveurs: majeures et mineures. Principaux tassements peuvent être un gros problème, mais vous devez d'abord comprendre compactions mineures.

Compactions mineures combinent un nombre configurable de petits HFiles dans un plus grand HFILE. Vous pouvez ajuster le nombre de HFiles de compacter et de la fréquence d'un compactage mineur. Compactions mineurs sont importants parce que sans eux, la lecture une ligne particulière peut nécessiter nombre de lectures disque et provoquer performance globale lente.

Le chiffre, qui illustre comment ce concept fonctionne, peut vous aider à visualiser la façon dont le tableau suivant peut être persisté sur le HDFS.

Vue Logique du client Informations de contact dans HBase
Key RowColonne Famille: {Colonne Qualifier: Version: Valeur}
00001CustomerName: {«FN»: 1383859182496: «John»,
'LN': 1383859182858: «Smith»,
«MN»: 1383859183001: Timothy '',
«MN»: 1383859182915: 'T'}
ContactInfo: {'EA': 1383859183030:'[email protected] »,
«SA»: 1383859183073: «1 Hadoop Lane, NY11111 '}
00002CustomerName: {«FN»: 1383859183103: «Jane»,
'LN': 1383859183163: «Doe»,
Informations de contact: {
«SA»: 1383859185577: «7 HBase Ave, CA22222 '}
image0.jpg

Remarquez comment la famille de la colonne CustomerName a été écrit pour le HDFS avec deux bouffées de MemStore et comment les données de la famille de la colonne a été ContactInfo persisté sur le disque avec un seul ras MemStore. Cet exemple est hypothétique, mais il est un scénario probable selon le calendrier des écritures.




Imaginez une société de services qui gagne de plus en plus d'informations de contact client au fil du temps. La société de services peut connaître le nom et prénom de son client, mais pas en apprendre davantage sur son prénom jusqu'à heures ou semaines plus tard, dans les demandes de service ultérieures. Ce scénario se traduirait par des parties de Row 00001 étant persisté à HDFS dans différents HFiles.

Tant que le système HBase effectue un compactage mineure, la lecture de Row 00001 exigerait trois lectures de disque pour récupérer le contenu de HFILE pertinente! Compactions mineurs cherchent à minimiser la charge du système tout en gardant le nombre de HFiles sous contrôle. Hbase concepteurs ont pris soin spécial à donner l'administrateur HBase autant de contrôle que possible d'accord pour avoir un impact du système “. Mineure ”

Comme son nom l'indique, un compactage majeure est différente de la perspective d'un impact sur le système. Toutefois, le compactage est très important pour le fonctionnement global du système HBase. Un compactage majeure cherche à combiner tous HFiles dans une grande HFILE.

En outre, un compactage majeure fait le travail de nettoyage après un utilisateur supprime un enregistrement. Lorsqu'un utilisateur lance un appel de suppression, le système HBase place un marqueur dans la paire clé-valeur de sorte qu'il peut être définitivement supprimé lors de la prochaine compactage majeur.

En outre, parce que les grands tassements combinent tous HFiles dans un grand HFILE, le moment est venu pour le système d'examiner les versions des données et de les comparer contre le temps de vivre (TTL) propriété. Valeurs plus âgés que le TTL sont purgés.

Temps de vivre se réfère à la variable dans HBase vous pouvez définir afin de définir combien de temps les données avec plusieurs versions restera dans HBase.

Vous avez peut-être deviné qu'un compactage majeure affecte de manière significative le temps de réponse du système. Les utilisateurs qui essaient d'ajouter, extraire, ou manipuler des données dans le système pendant un compactage important, ils peuvent voir le pauvre temps de réponse du système.

En outre, le cluster HBase peut avoir à diviser les régions en même temps qu'un compactage majeure se déroule et équilibre entre les régions dans tous les RegionServers. Ce scénario se traduirait par une quantité importante de trafic réseau entre RegionServers.

Pour ces raisons, votre administrateur HBase a besoin d'avoir une stratégie de compactage majeur pour votre déploiement.