1 回答

TA貢獻2065條經驗 獲得超14個贊
HBase數據遷移(1)-使用HBase的API中的Put方法
使用HBase的API中的Put是最直接的方法,用法也很容易學習。但針對大部分情況,它并非都是最高效的方式。當需要將海量數據在規定時間內載入HBase中時,效率問題體現得尤為明顯。待處理的數據量一般都是巨大的,這也許是為何我們選擇了HBase而不是其他數據庫的原因。在項目開始之前,你就該思考如何將所有能夠很好的將數據轉移進HBase,否則之后可能面臨嚴重的性能問題。
HBase有一個名為 bulk load的功能支持將海量數據高效地裝載入HBase中。Bulk load是通過一個MapReduce Job來實現的,通過Job直接生成一個HBase的內部HFile格式文件來形成一個特殊的HBase數據表,然后直接將數據文件加載到運行的集群中。使用bulk load功能最簡單的方式就是使用importtsv 工具。importtsv 是從TSV文件直接加載內容至HBase的一個內置工具。它通過運行一個MapReduce Job,將數據從TSV文件中直接寫入HBase的表或者寫入一個HBase的自有格式數據文件。
盡管importtsv 工具在需要將文本數據導入HBase的時候十分有用,但是有一些情況,比如導入其他格式的數據,你會希望使用編程來生成數據,而MapReduce是處理海量數據最有效的方式。這可能也是HBase中加載海量數據唯一最可行的方法了。當然我們可以使用MapReduce向HBase導入數據,但海量的數據集會使得MapReduce Job也變得很繁重。若處理不當,則可能使得MapReduce的job運行時的吞吐量很小。
- 1 回答
- 0 關注
- 810 瀏覽
添加回答
舉報