2013-11-26 4 views
6

Im пытается экспортировать данные из HBase Shell в текстовый файл, который я могу проанализировать, и добавить к msysql db.Экспорт данных из оболочки HBase

настоящее время я использую следующую команду:

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

, который экспортирует все из Hbase оболочки в registration.txt.

Как я могу удалить интро оболочки, а также резюме и просто добавить строки данных в текстовый файл:

Например: Shell в Я хочу, чтобы опустить:

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 

Резюме Я хочу опустить:

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

ответ

10

Попробуйте

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

Поскольку результаты начинаются с одного места, оставшиеся вещи будут отфильтрованы.

+0

Это работает! Запустите прямо в оболочке. Не в командной строке оболочки HBase – Sakthivel

1

Вы могли бы добавить еще один шаг к вашему трубопроводу, чтобы пропустить первые 4 строки, которые содержат все нежелательные вещи и добиться того, что:

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

Вы также можете просто вещи немного, делая использование здесь строки в Bash оболочки, например:

$ hbase shell <<< "scan 'registration',{COLUMNS=>'registration:status'}" \ 
    | grep "^ " > registration.txt 
Смежные вопросы