Vidéo: HBase CreateTable and Insert data on Ubuntu 2024
Compaction , le processus par lequel HBase nettoie après lui-même, vient en deux saveurs: majeur et mineur. Les compactions majeures peuvent être un gros problème, mais vous devez d'abord comprendre les compactages mineurs.
Les compactions mineures combinent un nombre configurable de HFiles plus petits en un HFile plus grand. Vous pouvez régler le nombre de HFiles à compacter et la fréquence d'un compactage mineur. Les compactions mineures sont importantes car sans elles, la lecture d'une ligne particulière peut nécessiter de nombreuses lectures de disque et entraîner des performances globales lentes.
La figure, qui illustre le fonctionnement de ce concept, peut vous aider à visualiser comment le tableau suivant peut être conservé sur le système HDFS.
Clé de ligne | Famille de colonnes: {Qualificateur de colonne: Version: Valeur} |
---|---|
00001 | CustomerName: {'FN':
1383859182496: ' John ', ' LN ': 1383859182858:' Smith ', ' MN ': 1383859183001:' Timothée ', ' MN ': 1383859182915:' T '} ContactInfo: {' EA ': 1383859183030:' John. Smith @ xyz. com ', ' SA ': 1383859183073:' 1 Hadoop Lane, NY 11111 '} |
00002 | NomClientèle: {' FN ':
1383859183103:' Jane ', 'LN': 1383859183163: 'Doe', ContactInfo: { 'SA': 1383859185577: '7 HBase Ave, CA 22222'} |
Notez comment la famille de colonnes CustomerName a été écrite dans HDFS avec deux vidages MemStore et comment les données de la famille de colonnes ContactInfo ont été conservées sur le disque avec un seul vidage MemStore. Cet exemple est hypothétique, mais c'est un scénario probable en fonction du timing des écritures.
Imaginez une société de services qui acquiert de plus en plus d'informations de contact client au fil du temps. La société de services peut connaître le nom et le prénom de son client mais ne pas connaître son deuxième prénom avant des heures ou des semaines plus tard dans les demandes de service ultérieures. Ce scénario entraînerait la persistance de parties de la ligne 00001 vers le système HDFS dans différents fichiers HFiles.
Jusqu'à ce que le système HBase effectue un compactage mineur, la lecture de la ligne 00001 nécessiterait trois lectures de disque pour récupérer le contenu HFile approprié! Les compactions mineures cherchent à minimiser les frais généraux du système tout en gardant le nombre de HFiles sous contrôle. Les concepteurs de HBase ont pris soin de donner à l'administrateur HBase autant de contrôle que possible pour que tout impact sur le système soit mineur. "
Comme son nom l'indique, un compactage majeur est différent de la perspective d'un impact sur le système. Cependant, le compactage est très important pour la fonctionnalité globale du système HBase. Une compaction majeure cherche à combiner tous les HFiles en un seul grand fichier HFile.
De plus, un nettoyage majeur est effectué après qu'un utilisateur a supprimé un enregistrement. Lorsqu'un utilisateur émet un appel Delete, le système HBase place un marqueur dans la paire clé-valeur afin qu'il puisse être définitivement supprimé lors du prochain compactage majeur.
De plus, comme les compactions majeures combinent tous les HFiles en un fichier HFile volumineux, il est temps que le système revoie les versions des données et les compare à la propriété TTL (time to live). Les valeurs plus anciennes que le TTL sont purgées.
Temps de vie se réfère à la variable dans HBase que vous pouvez définir afin de définir combien de temps les données avec plusieurs versions resteront dans HBase.
Vous avez peut-être deviné qu'un compactage majeur affecte de manière significative le temps de réponse du système. Les utilisateurs qui tentent d'ajouter, de récupérer ou de manipuler des données dans le système lors d'un compactage majeur peuvent constater un temps de réponse du système médiocre.
De plus, le cluster HBase peut devoir diviser des régions en même temps qu'une compression majeure et équilibrera les régions de tous les serveurs RegionServers. Ce scénario entraînerait une quantité importante de trafic réseau entre les serveurs RegionServers.
Pour ces raisons, votre administrateur HBase doit disposer d'une stratégie de compression majeure pour votre déploiement.