【发布时间】:2011-10-11 10:51:52
【问题描述】:
我需要在 HBase 中转储一个表并需要以文本文件/csv 格式显示它?我在 HBase shell 中查找了 scan、export 和 get 命令,但它不起作用。
【问题讨论】:
标签: hbase
我需要在 HBase 中转储一个表并需要以文本文件/csv 格式显示它?我在 HBase shell 中查找了 scan、export 和 get 命令,但它不起作用。
【问题讨论】:
标签: hbase
有很多方法可以从 HBase 表中获取数据,例如运行 export map/reduce 作业。您可以在此处阅读有关此内容和其他内容的信息http://blog.sematext.com/2011/03/11/hbase-backup-options/ 如果您想控制写入哪些行/单元格,您可以使用pig scripts
x = LOAD 'hbase://<sourceDatabaseName>' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage( '<family:qualifier>', '<family:qualifier2>','-loadKey true') AS (ID: bytearray , Value1:chararray , Value2:chararray);
STORE x INTO '<destFileName>'
USING CSVExcelStorage(['<delimiter>' [,{'YES_MULTILINE' | 'NO_MULTILINE'} [,{'UNIX' | 'WINDOWS' | 'UNCHANGED'}]]]);
【讨论】:
如果我们需要对 Java 代码进行更多控制,希望下面的链接会有所帮助。
https://gist.github.com/sakthiinfotec/102fca54c91b411f626a
这会将单个 HBase 表备份为本地文件系统中的 CSV 格式。我们需要从单个列族中预先定义我们需要的列列表。此代码使用必要的 jar 连接 HBase 表以及 OpenCSV jar 以写入 CSV 记录。
这里假设所有的列都是字符串。
【讨论】: