2016-08-02 28 views
0

Ich fing an, HBase zu lernen und ich verstehe nicht, wie es linear skaliert.Skaliert hbase wirklich linear?

Das Problem ist, dass Sie vor der Installation von hbase einen hdfs-Cluster haben müssen. Der HDFS-Cluster hat einen Master-Knoten, der im gesamten Cluster nur einer sein kann, also ein Engpass ist. Natürlich können wir einen weiteren Master-Knoten ausführen (es ist möglich, nur einen weiteren Master-Knoten auszuführen), aber es befindet sich im Standby-Zustand. Wie ich verstehe, verwendet HBase den HDFS-Cluster zum Speichern von Daten. Also ist es für mich logisch, dass es keinen Sinn hat, mehr als einen Hmaster zu betreiben, da alle Anfragen an den hdfs active master gehen, welche Leistung leiden kann, wenn wir zu viele Anfragen haben.

Auch ich verstehe nicht richtig, müssen wir HBase auf den gleichen Knoten mit hdfs oder separat installieren. Was sind die Vorteile, wenn wir HBase getrennt von HDFS ausführen? Was mich ist es logisch hbase Cluster auf denselben Knoten mit hdfs wie im folgenden Beispiel zu installieren:

HDFS active master - HMaster 
HDFS standby master - HMaster backup 
HDFS Data node - HRegion server 

für mich ist das logisch, weil strukturieren, wenn wir uns trennen hdfs Master von hmaster dann Wahrscheinlichkeit zu verlieren HBase-Cluster wird zweimal größer sein.

Ich werde sehr glücklich sein, wenn jemand Informationen über all diese Sachen teilen kann. Weil ich wirklich nicht verstehe, wie hbase linear skaliert und wie es mit hdfs funktioniert.

+0

Sie können HDFS einbinden, wodurch das einzelne NN-Problem beseitigt wird. Beachten Sie, dass das NN nur für Meta-Operationen verwendet wird (zB eine Partition/WAL), von der hbase nicht viel macht, wenn Sie es richtig konfigurieren (nur auf genügend große WALs rotieren, große Partitionen aufteilen und komprimieren). –

+0

Ich habe versucht, Daten vom Datenknoten im selben Moment zu lesen, als ich den hdfs-Master-Server abgeschnitten habe, und es zeigte mir einen Fehler. Wie ich weiß, wenn wir etwas von den Datenknoten lesen/schreiben, fragen sie zuerst den Masterknoten nach Informationen. Wenn der Master-Knoten tot ist, können wir nicht mit dem Cluster arbeiten. Ich mag mich irren, aber es ist meine Annahme – Alexandr

+0

ja Sie haben Recht, aber das beeinträchtigt nicht die Skalierbarkeit, nur Fehlertoleranz. Wenn Sie HA HDFS verwenden, haben Sie dieses Problem nicht. Siehe https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html –

Antwort

1

Zuerst, wenn Sie möchten, können Sie HBase über jedes unterstützte Dateisystem installieren. Es ist nicht zwingend es über HDFS zu verwenden, aber es mit HDFS mit Vorteil geben, um es wie Fehler taulrence, Datenreplikation, Prüfsummen usw. Das, warum es wird empfohlen HBase über hdfs

Außerdem zu verwenden, obwohl es einen Engpass von namenode in hdfs, aber es wirkt sich nicht auf die HBase-Effizienz aus, da es nicht so ist, dass jede interne Operation von nomenode von hdfs abhängt, z. B. werden von Regionsservern Daten für Lese- und Schreibvorgänge bereitgestellt. Beim Zugriff auf Daten kommunizieren Clients direkt mit HBase-Regionsservern, während die Regionszuweisung, DDL-Operationen (Tabellen erstellen, löschen) vom HBase-Master-Prozess verarbeitet werden. Das bedeutet, dass das Lesen und Schreiben von Daten unabhängig vom Erstellen und Löschen von Tabellen ist.

Sie können https://www.mapr.com/blog/in-depth-look-hbase-architecture für weitere Details über hdfs verweisen.

Siehe auch dieses Webinar zu HBase von Lars George. https://m.youtube.com/watch?v=_HLoH_PgrLk

Hoffe das wird Ihre Zweifel beseitigen.

+0

Danke für die Erklärung – Alexandr

+0

Willkommen :-) @Alexandr –