HBase

HBase-Logo
Quelle: Hönick, Christian,
"HBase lokal installieren",
(hoenick.com, 03.05.2012,
http://www.hoenick.com/blog/2012/05/03/hbase-lokal-installieren-unter-mac-os-x/)

HBase ist eine verteilte, spaltenorientierte Datenbank, welche auf Hadoop aufbaut, und für real-time read/write-Zugriffe auf großen Datenbeständen bestimmt.
Anders als bekannte, relationale Datenbanksysteme wurde HBase von Anfang an mit dem Gedanken an weitläufige Skalierungen und Verteilungen entwickelt.
Das Projekt wurde Ende 2006 von Chad Walters und Jim Kellerman von Powerset initiiert und orientiert sich am Konzept von Googles BigTable. Das erste Release wurde im Oktober 2007 mit Hadoop-0.15.0 ausgeliefert. Im Mai 2010 wurde es ein Hauptprojekt der Apache Software Foundation. Prominente Nutzer sind u.a. Adobe, Twitter und Yahoo.


Regionen

In HBase werden Tabellen automatisch ab einer konfigurierbaren Größe horizontal zerteilt, bzw. partitioniert. Eine Partition enthält dabei eine Untermenge der ursprünglichen Gesamtmenge von Zeilen. Diese Partitionen werden in der HBase-Architektur als Regionen bezeichnet. Im Sinne eines verteilten Systems sind die Regionen die Teile, die im Cluster auf den verschiedenen Knoten verteilt werden, den Region server.
Die folgende Grafik illustriert die Verteilung einer Tabelle auf mehrere Regionenserver:

Regions

Quelle: cnblogs.com, o. V. o. J. http://www.cnblogs.com/shenguanpu/archive/2012/05/28/2521259.html


Architektur

Wie HDFS und MapReduce arbeitet auch HBase Master-/Slave-orientiert. Es gibt einen Master und einen oder mehrere Slaves, die Region server. Der Master ist verantwortlich für die Bereitstellung einer Minimalinstallation und dem Zuweisen von Regionen an die Regionenserver. Regionserver enthalten keine oder mehr Regionen und sind für die Verarbeitung von Lese- und Schreiboperationen der Anwender. Ebenso nehmen sie auch die Teilung von zu groß gewordenen Regionen vor und informieren den Masterserver darüber, diese als vollwertige Regionen zu behandeln.

HBase selbst ist in Java geschrieben. Ein SQL-Dialekt, wie z.B. HiveQL? ist nicht implementiert. Hive? selbst kann allerdings in HBase integriert werden. Ansonsten erfolgt der Zugriff über Java-Programme. Hierfür wird das Java-Paket org.apache.hadoop.hbase.mapreduce bereit gestellt, mit welchem es möglich ist, HBase in MapReduce-Jobs einzubinden.
Unterstützt wird aber auch der Zugriff über Avro, REST und Thrift.


Quellen


Kategorie: Datenbanken, NeueDB-Entwicklungen, Hadoop, H