HBase使用最佳實踐-HBase Bulkload原理介紹
一、介紹
HBase有多種方式把數據load進去,最直接的方式是通過HBase Client API逐條寫入,或通過MapReduce調用TableOutputFormat方法寫入,但它們都不是最有效的方式。HBase還提供了另一種比較有效的加載數據方式:ImportTsv工具將數據轉換成HBase內部的組織格式輸出成HFile文件;completebulkload工具將ImportTsv生成的文件直接加載到HBase集群內。使用BulkLoad 將會比使用簡單HBase API方式占用更少的CPU和網絡資源。
2.HBase BulkLoad原理
HBase BulkLoad包含兩個主要步驟:
通過MapReduce任務來準備數據;
將數據加載到HBase中;
2.1? ? MR任務準備數據
MapReduce的執行過程分為Map端、Reduce端。Map函數輸出的
HBase BulkLoad也需要經過Map端和Reduce端。其中Map端主要完成數據轉換,根據內部算法將輸入文件進行拆分,每個拆分會對應一個Map任務來進行處理;每個Map任務按行讀取文件的內容,將每行數據轉換為HBase相關對象,最終保存在本地文件系統。
Reduce端主要是讀取本地文件系統,然后按照HBase底層的HFile文件格式生產相應文件,并保存在HDFS目錄。
2.2? ? ? 加載數據
通過MapReduce程序生產了HFile文件,但是并沒有導入HBase中。這時需要通過completebulkload工具,將生產的HFile文件導入已經運行的HBase中,從而客戶可以通過HBase獲取到相關數據。
大體上分為兩個階段:
掃描出HDFS上的待導入的HFile。
針對每個HFile,加載到制定的HBase Region對應的數據目錄中。
三. bulkload實驗樣例如附件所示
附件: bulkload實驗開源.docx 343.04KB 下載次數:4次
附件: bulkload實驗_華為.docx 0B 下載次數:3次
EI企業智能 FusionInsight HBase
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。