2015-12-03 3 views
8

Ich möchte die gleichen Informationen über die Regionen einer Tabelle erhalten, die in der Web-UI angezeigt werden (d. H. Regionsname, Regionsserver, Start-/Endschlüssel, Lokalität), aber über die hbase-Shell.Wie listet man die Regionen in einer HBase-Tabelle durch die Shell auf?

(Die Benutzeroberfläche ist flockig/langsam, und außerdem möchte ich diese Informationen als Teil eines Skripts bearbeiten.)

Nach viel googeln, ich kann nicht herausfinden, wie, und das überrascht mich sehr. Version ist 1.0.0.-cdh5.4.0

+0

Stellt sich heraus, dass Sie (noch) nicht können. Es gibt ein offenes Ticket https://issues.apache.org/jira/browse/HBASE-14925, um es hinzuzufügen. –

+0

FYI, einer der Hauptgründe, die ich wollte, war, dass die UI nicht immer die Tabellenbereiche zeigen würde. Ich habe durch Zufall herausgefunden, dass, wenn Sie einen major_compact für die Tabelle ausführen, dies die Metadaten der Tabelle auf eine Weise aktualisiert, die dazu führt, dass die Benutzeroberfläche die Tabellenregionen anzeigt. Zumindest kann ich jetzt die Informationen bekommen. Aber trotzdem wäre es super schön, diese Info in einem Skript auf einfache Weise nutzen zu können, ohne Screen Scraping zu benutzen! –

Antwort

24

Um die Region Informationen über den Tisch zu bekommen, müssen Sie hbase:meta Tabelle scannen.

scan 'hbase:meta',{FILTER=>"PrefixFilter('table_name')"} 

Dieser Befehl gibt Details zu allen Regionen an. Der Zeilenschlüssel hat einen Namen für die Region, und es gibt vier Spaltenqualifikationsmerkmale. Sie können folgende zweispaltigen Qualifier müssen:

info:regioninfo - Dieser Qualifier enthält StartKey und EndKey.

info:server - Dieser Qualifier enthält Details Region Server

+1

Jetzt gibt es einen offiziellen Befehl dafür, https://issues.apache.org/jira/browse/HBASE-14925 Ab Version 1.4 – LearningToCode

1

Hier ist eine Antwort von der HBase Mailingliste:

Status 'detaillierte' Sie würde zeigen, genug Informationen z.B.

t1,30,1449175546660.da5f3853f6e59d1ada0a8554f12885ab." 
    numberOfStores=1, numberOfStorefiles=0, 
    storefileUncompressedSizeMB=0, lastMajorCompactionTimestamp=0, 
    storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0, 
    readRequestsCount=0, writeRequestsCount=0, rootIndexSizeKB=0, 
    totalStaticIndexSizeKB=0, totalStaticBloomSizeKB=0, totalCompactingKVs=0, 
    currentCompactedKVs=0, compactionProgressPct=NaN, completeSequenceId=-1, 
    dataLocality=0.0 

Allerdings gibt diese Informationen von alle die Tabellen, und Sie müssen die Regionen der Tabelle interessiert Sie sind zu analysieren, in.

0

Verwenden Sie den „offiziellen“ list_regions Shell-Befehl aus zur Liste alle Regionen. Beachten Sie, dass dieses Tool nur ab HBase Version 1.4 und höher verfügbar ist.

Some examples are 
     Examples: 
     hbase> list_regions 'table_name' 
     hbase> list_regions 'table_name', 'server_name' 
     hbase> list_regions 'table_name', {SERVER_NAME => 'server_name', LOCALITY_THRESHOLD => 0.8} 
     hbase> list_regions 'table_name', {SERVER_NAME => 'server_name', LOCALITY_THRESHOLD => 0.8}, ['SERVER_NAME'] 
     hbase> list_regions 'table_name', {}, ['SERVER_NAME', 'start_key'] 
     hbase> list_regions 'table_name', '', ['SERVER_NAME', 'start_key'] 

Details zu ihrer Umsetzung sind unter: https://issues.apache.org/jira/browse/HBASE-14925

1

Es ist ein Werkzeug in hbase, die für die Tabelle Erholung und Konsistenzprüfung verwendet wird, genannt hbase hbck. 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 die Tabelle Details zu erhalten verwendet und die Region Informationen enthalten, erforderlich.

Die Ausgabe des oben genannten Befehls kann analysiert werden, um die Regionsinfo für die erforderliche Tabelle zu erhalten.

Verwandte Themen