2013-11-26 10 views
6

Ich versuche, Daten aus HBase Shell in eine Textdatei zu exportieren, die ich analysieren und zu einer msysql db hinzufügen kann.Exportieren von Daten aus der HBase-Shell

verwende ich zur Zeit den folgenden Befehl ein:

echo "scan 'registration',{COLUMNS=>'registration:status'}" | hbase shell > registration.txt 

, die alles von der hbase Schale zum registration.txt exportiert.

Wie kann ich die Schale Intro entfernen, und die Zusammenfassung und fügen Sie nur die Zeilen von Daten in die Textdatei:

Beispiel: Shell in ich weglassen wollen:

HBase Shell; enter 'help<RETURN>' for list of supported commands. 
Type "exit<RETURN>" to leave the HBase Shell 
Version 0.94.5-mapr, Wed May 1 7:42:07 PDT 2013 

Zusammenfassung Ich möchte wegzulassen:

ROW          COLUMN+CELL 
4419 row(s) in 12.9840 seconds 

Antwort

10

Versuchen Sie, diese

echo "scan 'registration',{COLUMNS=>'registration:status'}" | hbase shell | grep "^ " > registration.txt 

Da die Ergebnisse mit Leerzeichen vorangestellt werden, würde restlichen Sachen herausgefiltert werden.

+0

Es funktioniert! Run direkt in der Shell. Nicht in HBase Shell-Eingabeaufforderung – Sakthivel

1

Sie einen weiteren Schritt, um Ihre Pipeline hinzufügen könnten die ersten 4 Zeilen zu überspringen, die alle unerwünschten Material enthalten und erreichen, dass:

$ echo "scan 'registration',{COLUMNS=>'registration:status'}" | hbase shell \ 
    | awk 'NR>5{print$0}' 
0

Sie können auch einfach die Dinge ein wenig durch die Verwendung einer hier Zeichenfolge in einer Bash-Shell zum Beispiel machen:

$ hbase shell <<< "scan 'registration',{COLUMNS=>'registration:status'}" \ 
    | grep "^ " > registration.txt 
Verwandte Themen