2011-10-11 61 views
4

我需要轉儲HBase中的一張表並以文本文件/ csv格式存儲它嗎?我在HBase shell中查找了scan,exportget命令,但它不起作用。如何將hbase表格轉儲到文本文件中?

+0

這與此有關嗎? [獲取來自hbase shell中掃描的輸出](http://stackoverflow.com/questions/10035475/get-output-from-scans-in-hbase-shell) –

回答

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'}]]]); 
0

如果我們需要具備Java代碼的控制,下面的鏈接,希望將很有幫助。

https://gist.github.com/sakthiinfotec/102fca54c91b411f626a

這將備份單一的HBase的表作爲在本地文件系統中CSV格式。我們需要從單個列族中預先定義我們需要的列的列表。此代碼使用必需的jar將HBase表連同OpenCSV jar一起連接起來以寫入CSV記錄。

這裏假設所有的列都只是字符串。

相關問題