Hbase - 批量寫入加速技巧

## 背景

之前我們的線上業(yè)務(wù)一直使用的是Hbase的單條put操作,為了提高程序的寫入性能我們還針對業(yè)務(wù)進(jìn)行了修改项玛,將日志批量化,也就是hbase的put多條操作驾讲,后面發(fā)現(xiàn)hbase的客戶端是支持本地批量操作,而且還挺多配置的,這次主要針對的是`Hbase2.x`的版本進(jìn)行演示說明吮铭,`1.X`不在本文章的范圍內(nèi)时迫,因?yàn)榫€上的Hbase沒有這個版本,作為同齡的小伙伴們是知道 **大豬佩琪** 不會去線上安裝這樣一個版本來演示谓晌。

![](https://upload-images.jianshu.io/upload_images/9028759-72267fb283e769f8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

## 開始直播

說實(shí)話,這樣子使用Hbase來寫操作其實(shí)是最多人的,之前也包括我們在內(nèi)掠拳。

案發(fā)現(xiàn)場還原:

![](https://upload-images.jianshu.io/upload_images/9028759-4fc0f3711ff77318.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

但是,這不是你不想`加速`不想`進(jìn)步`的理由纸肉,看了 **大豬佩琪** 這篇文章之后 溺欧,不想進(jìn)步都難,又多了一個跟我搶飯碗的柏肪,看我下面煮的飯:

![](https://upload-images.jianshu.io/upload_images/9028759-e2d87727726f20c2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

看到這幾句姐刁,是不是有種相見恨晚的感覺?不鬧了烦味,容? **大豬佩琪** 慢慢道來:

1. 這句太難解釋聂使,PASS。

2. 設(shè)置自動提交的間隔谬俄,如果不設(shè)置柏靶,那你就要付出代價了,那就是手動:`table.flush()`溃论,不信屎蜓?看大豬從`Hbase`拿出來的源碼的默認(rèn)配置,就在樓下钥勋。

3. 這又是個什么鬼炬转,又臭又長,名還跟第2句差不多一樣笔诵,既然跟第一句差不多肯定是有聯(lián)系的嘛返吻,其實(shí)就是檢查什么時候到`Flush`的定時器,默認(rèn)是1秒檢查一次乎婿,如果加上自身配置上面的配置至少要4秒或者大小為2M才能自動提交一次测僵。

4. KV單條的最大Size,如果你像 **大豬佩琪** 上面一樣配置為1谢翎,信不信分分鐘鐘讓你體會 `KeyValue size too large` 異常捍靠,就是下面的案發(fā)現(xiàn)場:

![KeyValue size too large 案發(fā)現(xiàn)場](https://upload-images.jianshu.io/upload_images/9028759-dff83dd973f7fef6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

不設(shè)置就默認(rèn)為 **10M** 大小。

5. 看到情人了森逮,一看就是我們最想要的設(shè)置榨婆,可以看樓下的`doFlush`源碼,

有三個地方會調(diào)用到這個方法:`mutate`褒侧、`close`良风、`flush`

只有第一個是會按照`writeBufferSize`來大小來自動計算谊迄,其它兩個都是`flushAll`操作,屬于不黃但很暴力的那種烟央。

![](https://upload-images.jianshu.io/upload_images/9028759-06faeb7101a6b858.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

6. 這句跟第1句一樣看不懂统诺,肥家。

## 使用

上面的解析已經(jīng)完了疑俭,相信大家都會用了粮呢,還不會的話,請看下圖 **+** 例子:

![](https://upload-images.jianshu.io/upload_images/9028759-7bf4a64288324e32.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

給你給你

![](https://upload-images.jianshu.io/upload_images/9028759-7e976e50c929789a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

## 源碼

Hbase 2.x 配置

`org.apache.hadoop.hbase.client.ConnectionConfiguration` 頭部默認(rèn)配置

![](https://upload-images.jianshu.io/upload_images/9028759-05a5490147927dbf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

validatePut 源碼

![](https://upload-images.jianshu.io/upload_images/9028759-4a16736e305f329b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

doFlush 源碼

![](https://upload-images.jianshu.io/upload_images/9028759-4712f9e5f3d194d7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

---

![](https://upload-images.jianshu.io/upload_images/9028759-07315bb8dadcd082.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钞艇,一起剝皮案震驚了整個濱河市啄寡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哩照,老刑警劉巖挺物,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異飘弧,居然都是意外死亡姻乓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門眯牧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赖草,你說我怎么就攤上這事学少。” “怎么了秧骑?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵版确,是天一觀的道長。 經(jīng)常有香客問我乎折,道長绒疗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任骂澄,我火速辦了婚禮吓蘑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘坟冲。我一直安慰自己磨镶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布健提。 她就那樣靜靜地躺著琳猫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪私痹。 梳的紋絲不亂的頭發(fā)上脐嫂,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天统刮,我揣著相機(jī)與錄音,去河邊找鬼账千。 笑死侥蒙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蕊爵。 我是一名探鬼主播辉哥,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼攒射!你這毒婦竟也來了醋旦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤会放,失蹤者是張志新(化名)和其女友劉穎饲齐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咧最,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捂人,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了矢沿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滥搭。...
    茶點(diǎn)故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖捣鲸,靈堂內(nèi)的尸體忽然破棺而出瑟匆,到底是詐尸還是另有隱情,我是刑警寧澤栽惶,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布愁溜,位于F島的核電站,受9級特大地震影響外厂,放射性物質(zhì)發(fā)生泄漏冕象。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一汁蝶、第九天 我趴在偏房一處隱蔽的房頂上張望渐扮。 院中可真熱鬧,春花似錦掖棉、人聲如沸席爽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽只锻。三九已至,卻和暖如春紫谷,著一層夾襖步出監(jiān)牢的瞬間齐饮,已是汗流浹背捐寥。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祖驱,地道東北人握恳。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像捺僻,于是被迫代替她去往敵國和親乡洼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評論 2 361

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

  • ## 背景 之前我們的線上業(yè)務(wù)一直使用的是Hbase的單條put操作,為了提高程序的寫入性能我們還針對業(yè)務(wù)進(jìn)行了修...
    kikiki4閱讀 113評論 0 1
  • ## 背景 之前我們的線上業(yè)務(wù)一直使用的是Hbase的單條put操作,為了提高程序的寫入性能我們還針對業(yè)務(wù)進(jìn)行了修...
    kikiki5閱讀 140評論 0 3
  • ## 背景 之前我們的線上業(yè)務(wù)一直使用的是Hbase的單條put操作,為了提高程序的寫入性能我們還針對業(yè)務(wù)進(jìn)行了修...
    kikiki4閱讀 343評論 0 1
  • ## 背景 之前我們的線上業(yè)務(wù)一直使用的是Hbase的單條put操作,為了提高程序的寫入性能我們還針對業(yè)務(wù)進(jìn)行了修...
    kikiki4閱讀 99評論 0 2
  • ## 背景 之前我們的線上業(yè)務(wù)一直使用的是Hbase的單條put操作,為了提高程序的寫入性能我們還針對業(yè)務(wù)進(jìn)行了修...
    kikiki5閱讀 86評論 0 2