Ich möchte die gleichen Informationen über die Bereiche einer Tabelle erhalten, die in der Web-UI angezeigt werden (d. h. Regionsname, Regionsserver, Start / Ende-Schlüssel, Lokalität), aber über die hbase-Shell.
(Die Benutzeroberfläche ist flockig / langsam und außerdem möchte ich diese Informationen als Teil eines Skripts verarbeiten.)
Nach vielem Googeln kann ich nicht herausfinden wie und das überrascht mich immens. Version ist 1.0.0.-cdh5.4.0
Um die Regionsinformationen über die Tabelle zu erhalten, müssen Sie hbase:meta
table scannen.
Dieser Befehl gibt Details zu allen Regionen an. Der Zeilenschlüssel hat einen Namen für die Region, und es gibt vier Spaltenqualifikationsmerkmale. Sie müssen möglicherweise zwei Spaltenqualifikatoren folgen:
info:regioninfo
- Dieser Qualifier enthält STARTKEY und ENDKEY.
info:server
- Dieses Qualifikationsmerkmal enthält Details zum Regionsserver
Hier ist eine Antwort von der HBase-Mailingliste:
status 'detailliert' würde Ihnen genügend Informationen anzeigen z.B.
%Vor%Dies gibt jedoch Informationen aus all den Tabellen zurück, und Sie müssen die Regionen der Tabelle analysieren, an denen Sie interessiert sind.
Es gibt ein Werkzeug in hbase, das für die Tabellenwiederherstellung und Konsistenzprüfung verwendet wird, hbase hbck genannt. Dies wird zwar nicht in der hbase-Shell ausgeführt, kann aber verwendet werden, um die Liste der Regionen zu erhalten.
Der Befehl hbase hbck -details <tablename>
kann zum Abrufen der Tabellendetails verwendet werden und enthält die erforderlichen Regionsinformationen.
Die Ausgabe des oben genannten Befehls kann analysiert werden, um die Regionsinfo für die erforderliche Tabelle zu erhalten.
Verwenden Sie den Befehl "official" list_regions
shell, um alle Regionen aufzulisten. Beachten Sie, dass dieses Tool erst ab HBase Version 1.4 und höher verfügbar ist.
Details zu seiner Umsetzung sind: Ссылка
Tags und Links hbase