成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

disable table失敗,運維人員該如何處理?

運維 系統(tǒng)運維
相信每一個維護hbase集群的運維人員一定碰到過disable失敗,陷入無窮的"Region has been PENDING_CLOSE for too long..."狀態(tài),此時沒有什么好的辦法處理。經(jīng)常需要重啟集群。

    相信每一個維護hbase集群的運維人員一定碰到過disable失敗,陷入無窮的"Region has been PENDING_CLOSE for too long..."狀態(tài),此時沒有什么好的辦法處理。經(jīng)常需要重啟集群。 
    這個問題產生的原因非常討厭,經(jīng)過一段時間的分析和驗證,得到了根本原因。要理解它,必須從disable的原理說起: 

  1.   disable線程是一個DisableTableHandler類,我們看它的handleDisableTable()方法,在while循環(huán)中先獲取table的regions列表,然后調用BulkDisabler的bulkAssign()方法,等待bulkAssign()返回為true時則結束
  2.   在bulkAssign()方法中啟動線程池,然后等待線程池超時,超時時間由hbase.bulk.assignment.waiton.empty.rit控制
  3.   在每個線程中,先從regions collection中得到regions列表,然后通知rs來處理該region,并且把該region放入RIT列表中,表示該region正在進行處理
  4.   rs處理完region以后,將該region狀態(tài)在zk上置為closing,此時master得到通知
  5.   master將這個region從RIT列表中刪除,并從regions列表中刪除。

     注意以上最后一步,當master把它從RIT中刪除以后,還有短暫的時間這個region還在regions列表中,此時另一個線程拿到了這個region,并且此時這個region不處于RIT狀態(tài)保護,于是另一個線程開始重復以上過程,而前一個線程己經(jīng)把它從collection中刪除了,于是后一個線程再也無法完成closing事件。直到RIT超時(默認30秒)。 

    于是有兩個修改辦法: 
     1、縮短hbase.bulk.assignment.waiton.empty.rit這個時間(默認10分鐘,it's too long...),讓它重新進行一輪disable,此時會先把RIT的region都處理掉再繼續(xù),這樣多幾次嘗試總會成功的。 
     2、修改代碼:(https://issues.apache.org/jira/secure/attachment/12487669/HBASE-4064_branch90V2.patch) 

     Java代碼 : 
  1. Index: src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java    
  2. ===================================================================    
  3. --- src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (revision 1150529)    
  4. +++ src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (working copy)    
  5. @@ -767,14 +767,15 @@    
  6.     * @param regionInfo    
  7.     */    
  8.    public void regionOffline(final HRegionInfo regionInfo) {    
  9. +    // remove the region plan as well just in case.    
  10. +    clearRegionPlan(regionInfo);    
  11. +    setOffline(regionInfo);    
  12. +        
  13.      synchronized(this.regionsInTransition) {    
  14.        if (this.regionsInTransition.remove(regionInfo.getEncodedName()) != null) {    
  15.          this.regionsInTransition.notifyAll();    
  16.        }    
  17.      }    
  18. -    // remove the region plan as well just in case.    
  19. -    clearRegionPlan(regionInfo);    
  20. -    setOffline(regionInfo);    
  21.    }   


    即在以上步驟5時,先從regions列表中刪除,再清除它的RIT狀態(tài)。 
    方法2己經(jīng)測試成功,方法1更簡單,各位被這個問題困擾的同學可以一試。

原文鏈接:koven2049.iteye.com

 

責任編輯:黃丹 來源: nosqlfan
相關推薦

2019-05-09 15:31:23

攻擊服務器安全

2021-03-01 07:31:53

消息支付高可用

2013-01-11 15:42:40

IT運維云計算

2013-03-29 09:15:08

IT運維運維人員運維工程師

2023-03-09 12:21:38

2018-03-27 16:23:53

運維AI智能

2018-11-15 08:43:11

交換機硬件故障軟件故障

2010-01-28 10:09:27

IT運維人員

2014-04-23 17:11:57

運維人員訪問出錯

2013-03-21 17:17:34

2015-06-23 14:24:03

2014-11-27 10:07:43

IT運維

2025-03-31 08:04:50

MySQLCPU內存

2013-01-23 14:40:06

IT運維RIILCIO

2020-03-19 09:32:10

數(shù)據(jù)庫運維技術

2010-02-23 17:12:01

WCF字符串

2022-04-12 07:32:40

引擎模式Spring策略模式

2021-09-03 08:44:02

運維安全身份認證堡壘機

2017-05-16 14:25:35

運維云服務DevOps

2024-09-23 08:04:45

MYSQL數(shù)據(jù)存儲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久草 | 国产精品中文字幕一区二区三区 | 在线一区视频 | 国产亚洲一区二区精品 | 久久一起草 | 成人视屏在线观看 | 午夜影院中文字幕 | 99久久婷婷国产综合精品电影 | 91久久夜色精品国产网站 | 国产精品久久久久一区二区三区 | 久久电影一区 | 天天舔天天 | 国产一级免费视频 | 久久久久久综合 | 国产色婷婷精品综合在线手机播放 | 我爱操| 久久国产麻豆 | 亚欧精品一区 | 天天澡天天狠天天天做 | 欧美久久久久 | 成人av电影在线观看 | 久久久国产一区二区三区 | 成人性生交大片 | 日本高清不卡视频 | 狠狠综合久久av一区二区小说 | 国产精品久久久久久影视 | 国产精品一区二区三区在线 | 日本三级网 | 欧美日韩a | 在线亚州| 久久综合一区二区 | 国产一区二区三区日韩 | 国产精品亚洲成在人线 | 激情久久av一区av二区av三区 | 成人黄色在线 | 黄免费观看视频 | 久久美女网 | 热re99久久精品国产99热 | 国产激情视频网站 | 日韩欧美国产精品一区 | 免费九九视频 |