I need to take a dump of one table in HBase and need it in a text file/csv format? I looked for scan
, export
and get
commands in HBase shell, but it doesn't work.
Asked
Active
Viewed 1.2k times
4

slm
- 15,396
- 12
- 109
- 124

visit.paridhi
- 41
- 1
- 1
- 3
-
Is this relevant? [Get output from scans in hbase shell](http://stackoverflow.com/questions/10035475/get-output-from-scans-in-hbase-shell) – Gordon Gustafson Jun 27 '14 at 12:31
2 Answers
3
There are a lot of ways to get data out of an HBase table like running the export map/reduce job. You can read about this and other here http://blog.sematext.com/2011/03/11/hbase-backup-options/ If you want to control which rows/cells are written you can do that with 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'}]]]);

Arnon Rotem-Gal-Oz
- 25,469
- 3
- 45
- 68
0
If we need to have more control with Java code, hope below link will be helpful.
https://gist.github.com/sakthiinfotec/102fca54c91b411f626a
This will backup a single HBase table as CSV format in local filesystem. We need to pre-define the list of columns we needed from a single column family. This code uses necessary jars to connect HBase table along with OpenCSV jar to write CSV records.
Assumption here is all the columns are only string.

Sakthivel
- 576
- 8
- 15