Hardware-Anforderungen für HBase

HBase ist eine leistungsfähige und flexible Technologie, aber diese Flexibilität begleitet, ist die Voraussetzung für die richtige Konfiguration und Tuning. Es ist Zeit für einige allgemeine Richtlinien für HBase Cluster konfigurieren. Ihre "Kilometerstand" kann variieren, abhängig von spezifischen Rechenanforderungen für Ihre RegionServers (custom Coprozessoren, zum Beispiel) und andere Anwendungen, die Sie wählen können auf dem Cluster zusammen lokalisieren.

Menu

RegionServers

Die erste Versuchung zu widerstehen, wenn Ihr RegionServers Konfiguration ist viel Geld für einige High-End-Enterprise-Systeme Geklimper unten. Tun Sie es nicht! HBase wird in der Regel auf Plain-Vanilla-Ware x86-Servern bereitgestellt.

Nun, nehmen Sie diese Erklärung nicht als Lizenz die günstigsten, niedrige Qualität Servern bereitstellen. Ja, HBase entworfen von Knotenausfälle zu erholen, aber Ihre Verfügbarkeit leidet während Erholungsphasen so Hardware-Qualität und Redundanz machen Angelegenheit.

Redundante Netzteile sowie redundante Netzwerkschnittstellenkarten sind eine gute Idee für Produktionsimplementierungen. Typischerweise Organisationen wählen zwei Socket-Maschinen vier bis sechs Kernen pro Person.

Die zweite Versuchung widerstehen, ist der Server mit der maximalen Speicher und Speicherkapazität zu konfigurieren. Eine gemeinsame Konfiguration würde von 6 bis 12 Terabyte (TB) Speicherplatz und 48 bis 96 Gigabyte (GB) RAM umfassen. RAID-Controller für die Platten sind nicht erforderlich, da HDFS Datenschutz bereitstellt, wenn Datenträger ausfallen.

HBase erfordert eine Lese- und Schreib-Cache, die von der Java Heap zugewiesen wird. Halten Sie diese Aussage im Sinn, als Sie über die HBase Konfigurationsvariablen lesen, weil Sie sehen, dass eine direkte Beziehung zwischen einer RegionServer Plattenkapazität und ein RegionServer Java Heap vorhanden ist. Überprüfen Sie eine ausgezeichnete Diskussion heraus HBase RegionServer Speicher Schlichte.

Der Artikel weist darauf hin, dass Sie das Verhältnis von Roh-Speicherplatz zu Java Heap durch folgende diese Formel abschätzen:

RegionSize geteilt durch Memstoresize multipliziert mit HDFS Replication Factor multipliziert mit HeapFractionForMemstores

die Standard HBase Konfigurationsvariablen bietet dieses Verhältnis:

10GB / 128MB * 3 * 0,4 = Verhältnis von 96 MB Speicherplatz: 1 MB Java Heap-Speicher.

Die vorhergehende Zeile entspricht 3 TB Raw-Disk-Kapazität pro RegionServer mit 32 GB RAM auf dem Java Heap zugewiesen.

Was werden Sie am Ende, dann ist 1 Terabyte Nutzfläche pro RegionServer da der Standard HDFS Replikationsfaktor ist 3. Diese Zahl noch in Bezug auf die Datenbankspeicher pro Knoten ist beeindruckend, aber nicht so beeindruckend, da die Rohstoffserver in der Regel aufnehmen kann acht oder mehr Laufwerke mit einer Kapazität von 2 bis 4 terabyte ein Stück.

Das übergeordnete Problem als dies geschrieben wurde, ist die Tatsache, dass die aktuellen Java Virtual Machines (JVMs) Kampf effiziente Speicherverwaltung (Garbage Collection, um genau zu sein), um mit großen Haufen Räume (Räume größer als 32 GB, zum Beispiel).

Ja, es gibt die Garbage Collection Tuning-Parameter, die Sie verwenden können, und Sie sollten mit Ihrem JVM-Anbieter überprüfen Sie die neuesten Optionen versichern haben, aber Sie werden nicht sehr weit kommen können, um sie zu diesem Zeitpunkt verwenden.

Die Speicherverwaltung Problem wird schließlich gelöst werden, aber jetzt bewusst sein, dass Sie ein Problem auftreten können, wenn Ihre HBase Speicheranforderungen im Bereich von Hunderten von Terabytes an mehr als ein Petabyte sind. Sie können leicht zu 20GB erhöhen 6TB roh und 2 TB nutzbar zu erreichen.

Sie können andere Optimierungen (Verringerung der MemStore Größe für gelesen hohe Arbeitsbelastung, zum Beispiel), aber Sie werden nicht um Größenordnungen Sprünge in den Nutzraum machen, bis wir eine JVM, die Garbage Collection mit massiven Haufen effizient verarbeitet.

Sie können für RegionServers Möglichkeiten, um die JVM Garbage Collection Problem zu finden, aber die Lösungen sind neu und noch nicht Teil der Haupt HBase Verteilung zum Zeitpunkt des Schreibens.

Master-Server

Der Masterserver verbraucht keine Systemressourcen wie die RegionServers tun. Allerdings sollten Sie für Hardware-Redundanz, einschließlich RAID-Systemausfall zu verhindern. Für eine gute Maßnahme, konfigurieren Sie auch eine Backup-Masterserver in dem Cluster. Eine gemeinsame Konfiguration ist 4 CPU-Kerne, zwischen 8 GB und 16 GB RAM und 1-Gigabit-Ethernet ist eine gemeinsame Konfiguration. Wenn Sie co-lokalisieren MasterServers und Zookeeper Knoten, 16 GB RAM wird empfohlen.

Der Zoowärter

Wie der Masterserver, hat Zookeeper keine große Hardware-Konfiguration erfordern, aber Zookeeper darf nicht blockieren (oder erforderlich für konkurrieren) Ressourcen-System. Zookeeper, die die Koordinationsstelle für ein HBase Cluster ist, sitzt im Datenpfad für die Kunden. Wenn Zookeeper nicht seine Aufgabe erfüllen kann, Timeouts auftreten - und die Ergebnisse katastrophal sein können.

Zookeeper Hardware-Anforderungen sind dieselben wie für die Masterserver außer dass eine dedizierte Platte sollte für den Prozess bereitgestellt werden. Für kleine Cluster können Sie Zookeeper mit dem Master-Server zusammen finden aber nicht vergessen, dass Zookeeper ausreichend Systemressourcen, wenn Sie fertig ausgeführt werden muss.

Menü