HBase表Major&Minor Compaction無法結(jié)束問題排查

問題起源

?這個問題的起因歸咎于最近Y集群上的一張表A在對外提供數(shù)據(jù)服務(wù)的時候突然時不時大量拋超時異常臭挽,當(dāng)時重啟Region Server暫時停止拋超時異常约郁,但是問題沒有根本解決因為此種情況依舊繼續(xù)不斷復(fù)現(xiàn)庭瑰。

?首先對X集群上的HBase表A做一次Major Compaction(Y集群的表由X集群上的表每天加工完成之后復(fù)制到Y(jié)集群上,由于Y集群對外提供查詢服務(wù)蜕该,為保證服務(wù)穩(wěn)定因此修復(fù)表的操作都在X集群上進(jìn)行)栓拜,然后過了一段時間后,在HBase WebUI上查看這張表的大合并是已結(jié)束的呀邢,但是這張表有兩個Rgion的Locality還是很低洒沦,于是懷疑兩個Region大合沒有真正的成功。

?接著查找兩個Region所在的Region Server日志發(fā)現(xiàn)能夠看到兩個Region的start compacting記錄但是無法找到region compaction completed記錄价淌。在Region Server WebUI上發(fā)現(xiàn)兩個Region處于Closing狀態(tài)申眼,具體為disabling compacting and flushes for region并且此種狀態(tài)持續(xù)很久,單獨對兩個Region做大合并仍舊出現(xiàn)同樣現(xiàn)象蝉衣。過段時間兩個region就會處于RIT狀態(tài)括尸。總而言之,兩個Region的Major&Minor Compaction無法結(jié)束病毡。

image

嘗試解決

  1. assign兩個Region(失敗濒翻,具體現(xiàn)象為很快相關(guān)Region又會處于RIT狀態(tài))

  2. move這兩個Region到新的Region Server(失敗,現(xiàn)象同上)

  3. 重啟兩個Region所在的Region Server(失敗啦膜,現(xiàn)象同上)

  4. 對這張表做快照有送,隨后clone一張新表出來,對這張表做major_compact(失敗僧家,現(xiàn)象同上雀摘,另外還遇到disable表不成功的現(xiàn)象,如下圖所示通過重啟Region Server解決)


    image
  5. 寫程序八拱,將這張表的數(shù)據(jù)讀出來阵赠,寫進(jìn)一張新表上(失敗,在讀到問題Region 的數(shù)據(jù)時肌稻,會報超時異常清蚀,修改超時時間為1h,依然報超時)

  6. drop掉這張表爹谭,重新建表枷邪,重新加工了一遍存量(成功)

定位原因

?這張表的Data Block Encoding為prefix tree。如果是這種編碼方式就會存在Compaction無法結(jié)束的風(fēng)險旦棉。

解決辦法

?將表drop掉齿风,這個時候hbck一下已經(jīng)被drop掉的表,可能會發(fā)現(xiàn)那兩個region還會存在異常绑洛,然后重啟下這兩個region 對應(yīng)的region server救斑。隨后將這張表重新加工一份,就可以了真屯。

  1. disable ‘A’脸候;
  2. drop ‘A’;
  3. hbase hbck -details 'A' 這時候會發(fā)現(xiàn)還能夠檢測出來A表的不一致。我們這里的猜測是运沦,關(guān)于A表的region 信息還會存在在Region Server的內(nèi)存里泵额,并沒有隨著drop操作而刪除干凈;
  4. 重啟問題Region 所在的Region Server携添;
  5. hbase hbck -details 'A' 這個時候檢測的結(jié)果嫁盲,這張表才是顯示正常的,證明此刻這張表刪除干凈烈掠;
  6. 重新建表羞秤,指定data block encoding = 'NONE',并重新跑程序進(jìn)行數(shù)據(jù)重新加工左敌;
  7. hbase hbck -details 'A' 這個時候結(jié)果顯示才是沒問題瘾蛋,至此問題搞定。

排查總結(jié)

?drop掉之后矫限,如果不重啟Region Server可能會存在drop表不干凈的問題哺哼,兩個Region的信息駐留在Region Server對應(yīng)的內(nèi)存里面,此時如果重新加工一個同樣名字的表那這張新表可能存在此類問題叼风,比如online的時候創(chuàng)建快照建不成功或者offline的時候雖然快照可以創(chuàng)建成功取董,但是極有可能會把未刪干凈的Region信息給帶到snapshot里。另外就是關(guān)于跨集群復(fù)制无宿,如果在源端集群表的個別region 有問題甲葬,在數(shù)據(jù)通過快照的方式復(fù)制到目標(biāo)集群后,目標(biāo)端對應(yīng)的個別region 也會出現(xiàn)一模一樣的問題懈贺。其實我們公司內(nèi)部的hbase表從X集群復(fù)制到Y(jié)集群是通過快照的方式進(jìn)行:

  1. X集群上的表A進(jìn)行數(shù)據(jù)加工
  2. X集群上對表A,建快照:snapshot ‘A’ ‘snapshotA’
  3. Y集群上將A集群的快照復(fù)制過來:hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot ***
  4. Y集群disable 'A'
  5. Y集群restore ‘snapshotA’
  6. Y集群enable ‘A’

?通過以上方式把加工出來的表跨集群復(fù)制到另外一個集群供應(yīng)用系統(tǒng)查詢從而做到讀寫分離坡垫,但是由于在Y集群存在對表的disable操作梭灿,因此該表對于應(yīng)用而言會存在短暫不可用的現(xiàn)象。目前針對于讀寫分離場景怎樣避免這個短暫不可用還一直未找到非常好的解決方案冰悠,如果大家有好的建議或者方案發(fā)布到HBase技術(shù)社區(qū)論壇http://hbase.group




更多技術(shù)交流堡妒,可關(guān)注微信交流群,微信公眾號等:

或參考文章: HBase中文社區(qū)官網(wǎng)溉卓、交流群
1. 微信群

掃描添加小編微信好友(或搜索微信號: Mr_wanyue 添加)皮迟,回復(fù): HBase 加群

2. 釘釘群:

掃一掃添加

3. 微信公眾號:
掃描關(guān)注

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市桑寨,隨后出現(xiàn)的幾起案子伏尼,更是在濱河造成了極大的恐慌,老刑警劉巖尉尾,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爆阶,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)辨图,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門班套,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人故河,你說我怎么就攤上這事吱韭。” “怎么了鱼的?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵理盆,是天一觀的道長。 經(jīng)常有香客問我鸳吸,道長熏挎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任晌砾,我火速辦了婚禮坎拐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘养匈。我一直安慰自己哼勇,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布呕乎。 她就那樣靜靜地躺著积担,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猬仁。 梳的紋絲不亂的頭發(fā)上帝璧,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機(jī)與錄音湿刽,去河邊找鬼的烁。 笑死,一個胖子當(dāng)著我的面吹牛诈闺,可吹牛的內(nèi)容都是我干的渴庆。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼雅镊,長吁一口氣:“原來是場噩夢啊……” “哼襟雷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起仁烹,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤指蚁,失蹤者是張志新(化名)和其女友劉穎组橄,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡胧砰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苇瓣,到底是詐尸還是另有隱情尉间,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布击罪,位于F島的核電站哲嘲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏媳禁。R本人自食惡果不足惜眠副,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望竣稽。 院中可真熱鬧囱怕,春花似錦、人聲如沸毫别。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岛宦。三九已至台丛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砾肺,已是汗流浹背挽霉。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留变汪,地道東北人炼吴。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像疫衩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子荣德,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

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