2017-07-28 4 views
0

Ich versuche die Anzahl der Tabellen in hbase mit dem Befehl count zu ermitteln. Ich platziere derzeit alle Befehle in der Datei input.txt.Shell-Skript für HBase-Befehle | count 'table'

Probeneingang

count 'test.table1', INTERVAL => 10000000, CACHE => 10000000 
count 'test.table2', INTERVAL => 10000000, CACHE => 10000000 

Befehl

hbase shell ./input.txt 

Gibt es eine Möglichkeit, ein Shell-Skript zu schreiben, so dass ich auf nohup.out laufen kann und die Ausgabe wie wie unten über Shell-Skript erhalten so dass ich es für eine beliebige Anzahl von Tabellen ausführen kann:

Schätzen Sie jede Hilfe in dieser Hinsicht

Antwort

1

Mit diesem Code können Sie die Anzahl der Datensätze für alle HBase-Tabellen ermitteln.

#!/bin/bash echo 'list' | hbase shell | sed -e '1,/TABLE/d' -e '/seconds/,$d' | while IFS='' read -r line || [[ -n "$line" ]]; do echo "count '$line'" | hbase shell | tail -n 1 | xargs echo "$line,">> ./tableCount.log done

testeten diese in HBase 1.1.8, wird der Ausgang in tableCount.log gespeichert werden.

+0

Hallo, danke für die Info .. also übergeben wir die Liste der Tabellennamen als Eingabe in eine Datei? – divyanair

+0

Nein, der obige Code erhält zuerst die Liste der Tabellen in HBase und erhält dann die Nr. von Reihen für jede Tabelle. –