从HBase shell导出数据

时间:2013-11-26 03:45:58

标签: hbase hbase-shell

我试图将数据从HBase Shell导出到我可以解析的文本文件,并添加到msysql数据库。

我目前正在使用以下命令:

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

导出从hbase shell到registration.txt的所有内容。

如何删除shell简介和摘要,只需将数据行附加到文本文件中:

例如: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

3 个答案:

答案 0 :(得分:10)

试试这个

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

由于结果以单个空格为前缀,因此剩余的内容将被过滤掉。

答案 1 :(得分:1)

您可以向管道添加一个步骤,跳过前4行,其中包含所有不需要的内容并实现:

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

答案 2 :(得分:0)

你也可以通过在Bash shell中使用here字符串来简单地做一些事情,例如:

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