HBase Tuning Voraussetzungen

Jede ernsthafte HBase Installation erfordert einige Standard-Setup auf dem Cluster und auf Ihre individuellen Knoten. Einige Beispiele finden Sie hier. Zuerst nehmen Sie einen Blick auf die Überwachung und Verwaltung.

Tools, um Ihren Cluster zu überwachen

Wenn Sie das Privileg, Engineering, ein System zu einem bestimmten Zeitpunkt in Ihrer Karriere gehabt haben, wissen Sie, Sie die große Herausforderung der kommenden mit einem strengen Testverfahren stellen, um sicherzustellen, dass das System für seine Produktionsphase bereit ist. Wenn Sie nicht zum Testen und Debuggen ganz vorne Plan tun, werden Sie wahrscheinlich Ihre Produktionsfristen verpassen oder ganz ausfallen.

Die HBase und Hadoop Committer sorgte dafür, dass Sie ein reichhaltiges Metriken Subsystem während der Debug- und Testphase zu ziehen auf haben würde. Sie können alle unordentlichen Details finden Sie im Handbuch Apache HBase Online-Dokumentation, insbesondere die Abschnitte mit HBase Backup und Replikation zu tun haben.

Der Cluster Replication-Funktion ist ein wichtiges Instrument bei der Fehlersuche, Tuning oder wenn Sie Karte gegen Ihre Tabellen reduzieren ausführen möchten, ohne die Leistung zu beeinträchtigen. Offensichtlich Sie werden es brauchen für eine Katastrophe wieder als gut.

Erste Schritte mit dem Hadoop-Management-Tools Set gestartet ist überraschend einfach. HBase nutzt die Java Management Extensions (JMX) -Technologie für wichtige Kennzahlen auszusetzen. Und mit der Java Virtual Machine, Sie erhalten auch die JConsole-Tool, eine kostenlose JMX Client, den Sie HBase Metriken anzeigen können.

Die HBase Verteilung wir haben mit (0.94.7) Arbeiten ermöglicht den Zugriff über JConsole standardmäßig so in Ihrer eigenständigen Umgebung Sie einfach den HBase Server auswählen, die Sie überwachen möchten und JConsole dann präsentiert Ihnen eine grafische Benutzeroberfläche für die Taste Anzeige Server-Metriken.

$ JAVA_HOME / bin / jconsole: Sie können die JConsole Werkzeug mit dem folgenden Befehl starten

Darüber hinaus sollten Sie sich mit diesen beiden anderen Open-Source-Technologien vertraut zu machen für die Überwachung Ihrer HBase Cluster:

  • Ganglien: Häufig verwendete Überwachungs Graphen im Laufe der Zeit zur Verfügung zu stellen, kann Ganglia helfen Ihnen, Probleme erkennen, die gelegentlich oder erst nach Tagen des Betriebs auftreten.

  • Nagios: Nagios ist nützlich, wenn Sie ein HBase Administrator sind und Sie eine Seite auf Ihrem Pager oder eine E-Mail zu erhalten, wenn, sagen wir, ein RegionServer geht oder Sie haben eine Garbage Collection Problem in Ihrem Cluster.

Wenn Sie HBase als Teil eines kommerziellen Produkts sind die Nutzung, sollten Sie mit Ihrem Anbieter für ein Werkzeug zu prüfen, zu überwachen und zu verwalten HBase.

Cluster-Setup

HBase setzt typischerweise auf einem Cluster, und Sie werden einige Anpassungen auf jedem Ihrer Server vornehmen müssen HBase Komponenten aufzunehmen. Ein guter erster Schritt ist, um sicherzustellen, dass die Systemuhren auf jedem Server im Cluster synchronisiert sind.

Out of sync Systemuhren auf den Servern kann wirklich HBase, zu verwirren, so das Network Time Protocol oder NTP für kurze Check-out. Das Ausführen des NTP auf dem Cluster wird von irgendwelchen Zeitsynchronisierungsprobleme kümmern.

Darüber hinaus ist HBase eine einzigartige Anwendung, in gewisser Hinsicht, weil es Ihr System über das Niveau betont, dass Anwendungen tun kann. Die Wahrheit ist, dass HBase wird eine Menge von Dateien zu öffnen - das ist nur die Art des Tieres.

Da der Tat, müssen Sie sicherstellen, dass Ihr Betriebssystem so konfiguriert sind, zu handhaben, was sicher ist ein weit-from-typische Dateisystemlast zu sein. Swapping in Ihrem Linux-Betriebssystemen (Wechsel zwischen Festplatte und Arbeitsspeicher, mit anderen Worten) kann sehr negative Auswirkungen auf die Zookeeper.

Schließlich gibt es die Java Virtual Machine (JVM), die letztlich auf jedem Ihrer Knoten läuft und führt die HBase Prozesse. HBase setzt auch weit entfernt vom typischen Stress auf die JVM. (Zum Beispiel kann der MemStore Cache, der die Garbage-Collection-System stark ausübt, ist sicher auf die max besteuert werden.)

Wenn die MemStore zu HFiles auf dem HDFS begangen wird, wird der Java-Heap zurückgewonnen. Dies kann in lange Garbage Collection führen Pausen, wenn Ihre JVM ist nicht richtig konfiguriert.

Also für all diesen Gründen und mehr sollten Sie diese beiden Abschnitte der Apache HBase Online-Dokumentation überprüfen:

  • Allgemeine Konfigurationsanforderungen: Kapitel 2 des Apache HBase Online-Dokumentation und insbesondere Abschnitt 2.5 Titel "Die wichtigen Konfigurationen".

  • Java virtuelle Maschine: Bestimmen Sie, welche JVM Sie laufen und stellen Sie sicher, dass es für die Kompatibilität mit HBase getestet wurde. Der Apache HBase Online-Dokumentation schlägt Java 6 von Oracle, weil Java 7 nicht vollständig getestet.

    Eine weitere JVM ist IBM J9. Wenn Sie J9 verwenden möchten, überprüfen Sie die IBM-Dokumentation für die neuesten Optionen in der Befehlszeile, wenn Sie Ihre JVMs zu starten.

Die Aktivierung der Komprimierung

Kompression steigert HBase Leistung von insgesamt Platten-Ein- / Ausgabe zu reduzieren. Betrachten Sie das Aktivieren der Komprimierung, wenn Ihre Daten nicht komprimiert gut (Bilder, zum Beispiel), oder wenn Ihr RegionServers nicht die zusätzliche CPU-Last verarbeiten kann, dass die Kompression und Dekompression erfordert.

Die Komprimierung kann über die HBase Shell-Befehl aktiviert werden. Standardmäßig wird die Komprimierung pro Spalte Familie deaktiviert. Die unterstützten Komprimierungstypen sind gzip, LZO und Snappy (mit einigen anderen Derivaten zur Verfügung und mehr auf dem Weg). GZIP ist insgesamt beste für ein gutes Kompressionsverhältnis zu erzielen, aber LZO und Snappy sind schneller.

Beachten Sie aber, dass beide LZO und Snappy Kompressions-Codecs müssen installiert werden separat gebe funktioniert nur gzip ohne weitere Konfigurationsschritte. Die Auflistung zeigt die Schritte müssten Sie gzip-Komprimierung auf dem Kundenkontaktinformationen Tabelle zu aktivieren:

hbase (main): 007: 0> disable 'CustomerContactInfo'hbase (main): 010: 0> alter' CustomerContactInfo '{NAME =>' Kundenname ', compression =>' GZ '} hbase (main): 014: 0 > beschreiben 'CustomerContactInfo'...{NAME => 'Kundenname', REPLICATION_SCOPE => '0', KEEP_DELETED_CELLS => 'falsch', compression => 'GZ', ... hbase (main): 017: 0> enable 'CustomerContactInfo'

Menü