Verdichtungen in HBase

Verdichtungs, der Prozess, durch den HBase nach selbst aufräumt, kommt es in zwei Varianten: Dur und Moll. Wichtige Verdichtungen kann eine große Sache sein, aber zuerst müssen Sie kleinere Verdichtungen zu verstehen.

Minor Verdichtungen eine konfigurierbare Anzahl von kleineren HFiles zu einem größeren hFile kombinieren. Sie können tune die Anzahl der HFiles zu kompaktieren und die Frequenz einer geringfügigen Verdichtung. Minor Verdichtungen sind wichtig, weil ohne sie, eine bestimmte Zeile lesen kann viele Datenträger liest und verursachen langsam Gesamtleistung erfordern.

Die Figur, die zeigt, wie dieses Konzept funktioniert, können Sie helfen, zu visualisieren, wie die folgende Tabelle auf der HDFS beibehalten werden.

Logische Sicht des Kunden Kontaktinformationen in HBase
Row KeySpalte Familie: {Spalte Qualifier: Version: Wert}
00001Kundenname: { 'FN': 1383859182496: "John",
'LN': 1383859182858: 'Smith',
'MN': 1383859183001: "Timothy",
'MN': 1383859182915: 'T'}

Contact: { 'EA': 1383859183030:'[email protected] ',
"SA": 1383859183073: "1 Hadoop Lane, NY11111 '}
00002Kundenname: { 'FN': 1383859183103: 'Jane',

'LN': 1383859183163: "Doe",
Kontaktinformation: {
"SA": 1383859185577: "7 HBase Ave, CA22222 '}
bild0.jpg

Beachten Sie, wie die Kundenname Spalte Familie in die HDFS mit zwei MemStore Wallungen geschrieben wurde und wie die Daten in der Spalte Contact Familie wurde mit nur einem MemStore bündig auf der Festplatte bestehen blieb. Dieses Beispiel ist hypothetisch, aber es ist ein wahrscheinliches Szenario über den Zeitpunkt der Schreib abhängig.

Bild ein Service-Unternehmen, das mehr und mehr Kontaktinformationen des Kunden im Laufe der Zeit ist zu gewinnen. Die Servicegesellschaft kann seine Kunden Vor- und Nachnamen kennen, aber nicht um seine Mitte Namen erst Stunden oder Wochen später in nachfolgenden Service-Anfragen zu lernen. Dieses Szenario würde in Teilen Row 00001 führen zu unterschiedlichen HFiles auf die HDFS beharrte werden.

Bis zum HBase System eine geringe Verdichtung führt, von Row Lesen 00001 erfordern würde drei Datenträger liest die relevanten hFile Inhalt abzurufen! Minor Verdichtungen suchen System-Overhead zu minimieren, während die Anzahl der HFiles unter Kontrolle zu halten. HBase Designer kümmerte sich besonders um die HBase Administrator so viel Tuning Kontrolle wie möglich zu geben, um jedes System ihre Wirkung entfalten # 147-Moll # 148.

Wie der Name schon sagt, ist eine Hauptverdichtungs unterscheidet sich von der Perspektive eines Systems Wirkung. Jedoch ist die Verdichtung sehr wichtig für die Gesamtfunktionalität des Systems HBase. Ein großer Verdichtung sucht kombinieren alle HFiles in eine große hFile.

Darüber hinaus hat eine große Verdichtung der Aufräumarbeiten, nachdem ein Benutzer einen Datensatz löscht. Wenn ein Benutzer eine Löschen-Aufruf ausgibt, legt der HBase System einen Marker in dem Paar Schlüsselwert, so dass er dauerhaft während der nächsten Haupt Kompaktierung entfernt werden.

Darüber hinaus, da wichtige Verdichtungen alle HFiles zu einem großen hFile kombinieren, ist die Zeit reif für das System die Versionen der Daten zu überprüfen und sie gegen die Zeit zu vergleichen, Eigentum zu leben (TTL). Werte älter als die TTL werden gespült.

Zeit zu leben bezieht sich auf die Variable in HBase Sie, um zu bestimmen, wie lange Daten mit mehreren Versionen bleiben in HBase festlegen.

Sie haben vielleicht schon erraten, dass eine große Verdichtung erheblich die Reaktionszeit des Systems auswirkt. Benutzer, die hinzuzufügen versuchen,, abzurufen oder zu manipulieren, Daten in das System während einer großen Verdichtung, können sie schlechte Reaktionszeit des Systems zu sehen.

Darüber hinaus kann der HBase Cluster haben Regionen in der gleichen Zeit zu teilen, dass eine große Verdichtung stattfindet und Gleichgewicht der Regionen in allen RegionServers. Dieses Szenario würde in einer signifikanten Menge an Netzwerkverkehr zwischen RegionServers führen.

Aus diesen Gründen muss Ihr HBase Administrator eine große Verdichtungsstrategie für die Bereitstellung zu haben.

Menü