我需要在HBase中转储一个表并以文本文件/ csv格式需要它吗?我在HBase shell中查找了scan
,export
和get
命令,但它不起作用。
答案 0 :(得分:3)
有很多方法可以从HBase表中获取数据,例如运行导出映射/减少作业。您可以在此处阅读此处和其他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'}]]]);
答案 1 :(得分:0)
如果我们需要对Java代码进行更多控制,希望以下链接会有所帮助。
https://gist.github.com/sakthiinfotec/102fca54c91b411f626a
这将在本地文件系统中将单个HBase表备份为CSV格式。我们需要从单个列族预先定义所需列的列表。此代码使用必要的jar来连接HBase表和OpenCSV jar以写入CSV记录。
这里的假设是所有列都只是字符串。