Video: HBase Tutorial for Beginners | What is HBase in Hadoop | HBase Shell Commands 2024
Eine Diskussion der Architektur von HBase (Hadoop Database) durch die Beschreibung von RegionServers anstelle des MasterServers kann Sie überraschen. Der Begriff RegionServer scheint zu implizieren, dass er vom MasterServer abhängt (und zweitrangig ist) und dass Sie daher den MasterServer zuerst besprechen sollten. Wie das alte Lied aber lautet, "ist es nicht unbedingt so. "
Die RegionServer sind für bestimmte Funktionen vom MasterServer abhängig, nicht aber im Sinne einer Master-Slave-Beziehung zur Datenspeicherung und -abfrage. Beachten Sie in der oberen linken Ecke der Abbildung, dass die Clients nicht auf den MasterServer zeigen, sondern stattdessen auf den Zookeeper-Cluster und die RegionServers zeigen.
Der MasterServer befindet sich nicht im Pfad für die Datenspeicherung und den Zugriff - das ist die Aufgabe des Zookeeper-Clusters und des RegionServers. Schauen Sie sich die Hauptfunktionen des MasterServers an, der auch ein Software-Prozess (oder Daemon) ist, wie der RegionServer. Der MasterServer ist da, um
-
die RegionServer im HBase-Cluster zu überwachen: Der MasterServer verwaltet eine Liste der aktiven RegionServer im HBase-Cluster.
-
Metadatenoperationen verarbeiten: Wenn eine Tabelle erstellt oder ihre Attribute geändert werden (Komprimierungseinstellung, Cacheeinstellungen, Versionsverwaltung usw.), führt der MasterServer die Operation aus und speichert die erforderlichen Metadaten.
-
Regionen zuweisen: Der MasterServer weist RegionsServers Regionen zu.
-
RegionServer-Failover verwalten: Wie bei jedem verteilten Cluster hoffen Sie, dass Knotenfehler nicht auftreten und Sie trotzdem planen. Wenn Regionsserver fehlschlagen, benachrichtigt Zookeeper den MasterServer, damit Failover- und Wiederherstellungsvorgänge eingeleitet werden können.
-
Überwachen des Lastausgleichs von Regionen über alle verfügbaren RegionServers: Sie erinnern sich vielleicht, dass die Tabellen aus Regionen bestehen, die gleichmäßig auf alle verfügbaren RegionServers verteilt sind. Dies ist die Arbeit des Balancer-Threads (oder chore , wenn Sie dies bevorzugen), die der MasterServer periodisch aktiviert.
-
Verwalten (und bereinigen) von Katalogtabellen: Zwei Schlüsselkatalogtabellen werden vom HBase-System verwendet, um einem Client zu helfen, ein bestimmtes Schlüsselwertpaar im System zu finden.
Der MasterServer bietet die Verwaltung dieser kritischen Tabellen im Auftrag des gesamten HBase-Systems.
-
Löschen Sie die WAL: Der MasterServer interagiert während des RegionServer-Failovers mit der WAL und bereinigt die Protokolle in regelmäßigen Abständen.
-
Bereitstellen eines Coprozessor-Frameworks zum Beobachten von Master-Operationen: Hier ist ein weiterer neuer Begriff für Ihr wachsendes HBase-Glossar. Coprozessoren werden im Kontext des MasterServers oder RegionServers ausgeführt. Mit einem Masterserver-Beobachter-Coprozessor können Sie z. B. die normale Funktionalität des Servers ändern oder erweitern, wenn Vorgänge wie die Tabellenerstellung oder das Löschen von Tabellen ausgeführt werden. Häufig werden Coprozessoren verwendet, um Tabellenindizes für erweiterte HBase-Anwendungen zu verwalten.
Ein Coprozessor, der im Kontext von MasterServer und / oder RegionServer (oder beiden) ausgeführt wird, kann verwendet werden, um die Sicherheit zu erhöhen, sekundäre Indizes zu erstellen und mehr. Weitere Informationen über Coprozessoren finden Sie in einem HBase-Community-Blog.
Wie bei allen Open-Source-Hadoop-Technologien wird sich der MasterServer-Betrieb wahrscheinlich im Laufe der Zeit ändern, da die Ingenieursgemeinschaft an Innovationen zur Verbesserung von HBase arbeitet. Zum jetzigen Zeitpunkt haben Sie jedoch eine recht gründliche Liste, die als Referenz für den MasterServer dient.
Zum Schluss noch ein wichtiger Punkt zum HBase MasterServer: Es kann und sollte ein Backup-MasterServer in jedem HBase-Cluster sein. Zu einem bestimmten Zeitpunkt muss nur ein aktiver MasterServer vorhanden sein, daher dient der Backup-Masterserver dem Failover.
Sie erinnern sich vielleicht, dass sich der MasterServer nicht im Datenzugriffspfad für HBase-Clients befindet. Möglicherweise erinnern Sie sich aber auch daran, dass der MasterServer für Aktionen wie das Failover des Regionsservers und den Lastenausgleich zuständig ist. Die gute Nachricht ist, dass Clients den HBase-Cluster weiterhin abfragen können, wenn der Master ausfällt, aber für normale Cluster-Operationen sollte der Master nicht für längere Zeit im Hintergrund bleiben.