Hbase教程:通過BulkLoad快速將海量數(shù)據(jù)導入到Hbase

本文將針對這個問題介紹如何通過Hbase的BulkLoad方法來快速將海量數(shù)據(jù)導入到Hbase中召娜。

在第一次建立Hbase表的時候恢暖,我們可能需要往里面一次性導入大量的初始化數(shù)據(jù)排监。我們很自然地想到將數(shù)據(jù)一條條插入到Hbase中,或者通過MR方式等杰捂。但是這些方式不是慢就是在導入的過程的占用Region資源導致效率低下社露,所以很不適合一次性導入大量數(shù)據(jù)。本文將針對這個問題介紹如何通過Hbase的BulkLoad方法來快速將海量數(shù)據(jù)導入到Hbase中琼娘。

總的來說峭弟,使用 Bulk Load 方式由于利用了 HBase 的數(shù)據(jù)信息是按照特定格式存儲在 HDFS 里的這一特性,直接在 HDFS 中生成持久化的 HFile 數(shù)據(jù)格式文件脱拼,然后完成巨量數(shù)據(jù)快速入庫的操作瞒瘸,配合 MapReduce 完成這樣的操作,不占用 Region 資源熄浓,不會產(chǎn)生巨量的寫入 I/O情臭,所以需要較少的 CPU 和網(wǎng)絡資源省撑。Bulk Load 的實現(xiàn)原理是通過一個 MapReduce Job 來實現(xiàn)的,通過 Job 直接生成一個 HBase 的內(nèi)部 HFile 格式文件俯在,用來形成一個特殊的 HBase 數(shù)據(jù)表竟秫,然后直接將數(shù)據(jù)文件加載到運行的集群中。與使用HBase API相比跷乐,使用Bulkload導入數(shù)據(jù)占用更少的CPU和網(wǎng)絡資源肥败。

實現(xiàn)原理

Bulkload過程主要包括三部分:

1、從數(shù)據(jù)源(通常是文本文件或其他的數(shù)據(jù)庫)提取數(shù)據(jù)并上傳到HDFS愕提。抽取數(shù)據(jù)到HDFS和Hbase并沒有關系馒稍,所以大家可以選用自己擅長的方式進行,本文就不介紹了浅侨。

2纽谒、利用MapReduce作業(yè)處理實現(xiàn)準備的數(shù)據(jù) 。這一步需要一個MapReduce作業(yè)如输,并且大多數(shù)情況下還需要我們自己編寫Map函數(shù)鼓黔,而Reduce函數(shù)不需要我們考慮,由HBase提供不见。該作業(yè)需要使用rowkey(行鍵)作為輸出Key;KeyValue请祖、Put或者Delete作為輸出Value。MapReduce作業(yè)需要使用HFileOutputFormat2來生成HBase數(shù)據(jù)文件脖祈。為了有效的導入數(shù)據(jù)肆捕,需要配置HFileOutputFormat2使得每一個輸出文件都在一個合適的區(qū)域中。為了達到這個目的盖高,MapReduce作業(yè)會使用Hadoop的TotalOrderPartitioner類根據(jù)表的key值將輸出分割開來慎陵。HFileOutputFormat2的方法configureIncrementalLoad()會自動的完成上面的工作。

3喻奥、告訴RegionServers數(shù)據(jù)的位置并導入數(shù)據(jù)席纽。這一步是最簡單的,通常需要使用LoadIncrementalHFiles(更為人所熟知是completebulkload工具)撞蚕,將文件在HDFS上的位置傳遞給它润梯,它就會利用RegionServer將數(shù)據(jù)導入到相應的區(qū)域。歡迎加入大數(shù)據(jù)學習交流分享群: 658558542? ?一起吹水交流學習(?點擊即可加入群聊

整個過程圖如下:

代碼實現(xiàn)

上面我們已經(jīng)介紹了Hbase的BulkLoad方法的原理甥厦,我們需要寫個Mapper和驅(qū)動程序纺铭,實現(xiàn)如下:

使用MapReduce生成HFile文件

驅(qū)動程序

通過BlukLoad方式加載HFile文件

由于Hbase的BulkLoad方式是繞過了Write to WAL,Write to MemStore及Flush to disk的過程刀疙,所以并不能通過WAL來進行一些復制數(shù)據(jù)的操作舶赔。后面我將會再介紹如何通過Spark來使用Hbase的BulkLoad方式來初始化數(shù)據(jù)。

BulkLoad的使用案例

1谦秧、首次將原始數(shù)據(jù)集載入 HBase- 您的初始數(shù)據(jù)集可能很大竟纳,繞過 HBase 寫入路徑可以顯著加速此進程撵溃。

2、遞增負載 - 要定期加載新數(shù)據(jù)锥累,請使用 BulkLoad 并按照自己的理想時間間隔分批次導入數(shù)據(jù)缘挑。這可以緩解延遲問題,并且有助于您實現(xiàn)服務級別協(xié)議 (SLA)桶略。但是语淘,壓縮觸發(fā)器就是 RegionServer 上的 HFile 數(shù)目。因此删性,頻繁導入大量 HFile 可能會導致更頻繁地發(fā)生大型壓縮,從而對性能產(chǎn)生負面影響焕窝。您可以通過以下方法緩解此問題:調(diào)整壓縮設置蹬挺,確保不觸發(fā)壓縮即可存在的最大 HFile 文件數(shù)很高,并依賴于其他因素它掂,如 Memstore 的大小 觸發(fā)壓縮巴帮。

3、數(shù)據(jù)需要源于其他位置 - 如果當前系統(tǒng)捕獲了您想在 HBase 中包含的數(shù)據(jù)虐秋,且因業(yè)務原因需要保持活動狀態(tài)榕茧,您可從系統(tǒng)中將數(shù)據(jù)定期批量加載到 HBase 中,以便可以在不影響系統(tǒng)的前提下對其執(zhí)行操作客给。

結(jié)語

感謝您的觀看用押,如有不足之處,歡迎批評指正靶剑。

如果有對大數(shù)據(jù)感興趣的小伙伴或者是從事大數(shù)據(jù)的老司機可以加群:

658558542? ? (?點擊即可加入群聊

里面整理了一大份學習資料蜻拨,全都是些干貨,包括大數(shù)據(jù)技術入門桩引,海量數(shù)據(jù)高級分析語言缎讼,海量數(shù)據(jù)存儲分布式存儲,以及海量數(shù)據(jù)分析分布式計算等部分坑匠,送給每一位大數(shù)據(jù)小伙伴血崭,這里不止是小白聚集地,還有大牛在線解答厘灼!歡迎初學和進階中的小伙伴一起進群學習交流夹纫,共同進步!

最后祝福所有遇到瓶頸的大數(shù)據(jù)程序員們突破自己设凹,祝福大家在往后的工作與面試中一切順利捷凄。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市围来,隨后出現(xiàn)的幾起案子跺涤,更是在濱河造成了極大的恐慌匈睁,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桶错,死亡現(xiàn)場離奇詭異航唆,居然都是意外死亡,警方通過查閱死者的電腦和手機院刁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門糯钙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人退腥,你說我怎么就攤上這事任岸。” “怎么了狡刘?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵享潜,是天一觀的道長。 經(jīng)常有香客問我嗅蔬,道長剑按,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任澜术,我火速辦了婚禮艺蝴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鸟废。我一直安慰自己猜敢,他們只是感情好,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布盒延。 她就那樣靜靜地躺著锣枝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兰英。 梳的紋絲不亂的頭發(fā)上撇叁,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音畦贸,去河邊找鬼陨闹。 笑死,一個胖子當著我的面吹牛薄坏,可吹牛的內(nèi)容都是我干的趋厉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼胶坠,長吁一口氣:“原來是場噩夢啊……” “哼君账!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沈善,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤乡数,失蹤者是張志新(化名)和其女友劉穎椭蹄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體净赴,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡绳矩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了玖翅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翼馆。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖金度,靈堂內(nèi)的尸體忽然破棺而出应媚,到底是詐尸還是另有隱情,我是刑警寧澤猜极,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布中姜,位于F島的核電站,受9級特大地震影響魔吐,放射性物質(zhì)發(fā)生泄漏扎筒。R本人自食惡果不足惜莱找,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一酬姆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奥溺,春花似錦辞色、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至桦卒,卻和暖如春立美,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背方灾。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工建蹄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人裕偿。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓洞慎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嘿棘。 傳聞我的和親對象是個殘疾皇子劲腿,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容