雖然Hbase 有提供Put的介面去放入資料,但是對於大量資料的載入,官方還是建議使用Bulk load的方式,可以減少Hbase memory使用量,另外也可以增加throughput。
關於 Bulk load Hbase 參考官網
Bulk Loading 裡面的教學,步驟分別是:
1. 首先產生HBase data files (StoreFiles) 並且儲存在HDFS,官網提供兩種方法:
A. 使用ImportTsv Tools 或是透過API Call (參考官方
API JaveDoc )
不過仔細想想Raw Data通常不會剛好長成Tsv format,所以建議還是自己寫MR來轉比較好。
B. 自行撰寫MapReduce,並且輸出成HFileOutputFormat
可以參考ImportTsv的
source code
2.把產生的StoreFiles轉成Hbase 所使用的 Hfile 格式,這邊官網也提供兩種方法:
A. 使用completebulkload Tools
B. 當然也是可以自行撰寫程式,參考 LoadIncrementalHFiles
如果要自己寫程式,可以參考以下幾篇文章:
待續....
沒有留言:
張貼留言