《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > HBase集群中RegionServer崩潰后的快速恢復措施探索
HBase集群中RegionServer崩潰后的快速恢復措施探索
2014年微型機與應用第18期
馬 軍,石 輝,裴文斌
西安雷迪維護系統設備有限公司,陜西 西安 710065
摘要: 主要介紹了HBase RegionServer與Zookeeper間的交互過程,闡述RegionServer崩潰后的恢復機制,并在此基礎上提出了幾點優化的恢復措施。優化后的恢復措施大大縮短了RegionServer崩潰后的故障恢復時間和業務中斷時間,從而提高了HBase集群的穩定性和可靠性。
Abstract:
Key words :

  摘  要: 主要介紹了HBase RegionServer與Zookeeper間的交互過程,闡述RegionServer崩潰后的恢復機制,并在此基礎上提出了幾點優化的恢復措施。優化后的恢復措施大大縮短了RegionServer崩潰后的故障恢復時間和業務中斷時間,從而提高了HBase集群的穩定性和可靠性。

  關鍵詞: HBase;RegionServer;崩潰;恢復

0 引言

  隨著互聯網和通信行業的迅猛發展,積聚的各種數據呈急劇增長態勢。這些海量數據既蘊含著豐富的信息和資源,又面臨著信息有效管理和提取的難題。云計算是分布式處理、并行處理和網格計算的發展,可以提供近乎無限的廉價存儲和計算能力,特別適合于日益暴增的海量數據的存儲和處理。在云計算領域中,Hadoop體系獨樹一幟,其豐富的子系統可以滿足多種領域和行業的應用需求,而其中的HBase作為一種非結構化數據庫,特別適合于各種非結構化和半結構化的松散數據的存儲和管理。

  HBase是一個高可靠性、高性能、面向列、可伸縮、實時讀寫的分布式存儲數據庫系統[1-3]。HBase建立在HDFS分布式文件系統基礎之上,其中的數據最終以HFile的格式存儲在HDFS之上;HBase可以通過內嵌的MapReduce組件實現復雜任務的并行和分布處理,具有很高的性能。

  1 HBase體系結構

  HBase主要由HMaster和RegionServer兩部分組成,輔以Zookeeper協調集群中各網元之間的數據共享和訪問,其組成框圖如圖1所示[4]。

001.jpg

  (1)Client:訪問HBase的接口,維護著一些加快HBase訪問的緩存,比如Region的位置信息等。

  (2)Master:負責Region到RegionServer的分配以及映射關系維護;管理集群中的RegionServer及其負載均衡;維護數據表和其所在Region的元數據信息;處理表級的操作請求等。

 ?。?)RegionServer:維護Master分配給它的Region,處理對這些Region的讀寫請求;負責運行過程中過大的Region的Split和Compact操作。

  (4)Zookeeper:保證任何時候集群中只有一個激活的Master;存儲RootRegion和Master的位置;存儲所有RegionServer的位置并實時監控其狀態;存儲HBase的其他運行所需的信息[5]。

  HBase中的數據單元通過主鍵、列簇、列名和版本號唯一確定,所有行按字典順序排列。HBase中的表在行的方向上分割為多個Region,每個Region只存儲表中某一范圍的數據,并且每個Region只能被一個RegionServer管理。Region由一個或者多個Store組成,每個Store保存一個列簇;Store又由一個MemStore和0至多個storefile組成,storefile以HFile的格式存儲于HDFS上。

  由此可見,HBase中的表通常被劃分為多個Region,而各個Region可能被不同的RegionServer所管理。客戶端通過Master和相關操作獲取目標Region的位置后,最終通過RegionServer完成對用戶表的讀寫請求。因此,如果某個RegionServer異常,客戶端對其所管理的Region的訪問就會失敗,造成了業務中斷,這在在線系統中是不可接受的。雖然HBase中實現了RegionServer異常后的自動恢復機制,但是這種機制的時延很大,不能滿足實際應用需求。因此,本文針對這部分進行了研究,并提出了一種可以快速、高效恢復業務的方法。

2 HBase集群與Zookeeper交互機制分析

  在HBase的使用過程中,Zookeeper起著至關重要的作用。正是Zookeeper的存在,使得HBase的運行更加穩定和高效。

  在配置環境中,Zookeeper集群中的HBase的目錄如圖2所示。

003.jpg

  HBase集群的相關信息存儲在Zookeeper集群中的hbase目錄(這個目錄是可以配置的)下,其中master目錄存儲HMaster的位置等相關信息,rs目錄存儲所有的RegionServer的位置等相關信息。

  在HMaster啟動時,會在Zookeeper集群中創建自己的ZNode臨時節點并獲得該節點的獨占鎖,該節點位于Zookeeper集群中的/hbase/master目錄下。同時會在所有的其他目錄上創建監聽,這樣當其他節點的狀態發生變化時,HMaster就可以立即感知從而進行相應的處理。

  在RegionServer啟動時,會在Zookeeper集群中創建自己的ZNode臨時節點并獲得該節點的獨占鎖,這個節點位于Zookeeper集群中的/hbase/rs目錄下。

  RegionServer會通過Socket連接向Zookeeper集群發起Session會話,會話建立后在Zookeeper集群中創建屬于自己的臨時節點ZNode。這個節點的狀態是由Zookeeper集群依據Session的狀態來維護的。

  RegionServer作為客戶端,向Zookeeper集群的Server端發起Session會話請求。Session建立后,會以唯一的SessionID作為標示。Client會定期向Server端發送Ping消息來表達該Session的存活狀態;而Server端收到Ping消息時會更新當前Session的超時時間。如此,對于Client而言,只要Ping信息可達則表明該Session激活;對于Server而言,只要Session未超時則表明該Session激活。

  在Server端,Zookeeper會啟動專門的SessionTrackerImpl線程來處理Session的相關狀態遷移問題,該線程每隔tickTime(Zookeeper配置文件中指定,默認為2 s)時間遍歷一次Session列表,如果超時則立即關閉此Session,同時刪除與該Session關聯的臨時節點,并將該事件通知給注冊了該節點事件的組件。在HBase集群中,這就意味著如果RegionServer崩潰,則Zookeeper需要在Session超時后才能通知Master,后者才能啟動故障恢復。

  而Session的超時時間是這樣確定的:HBase默認的Timeout為180 s,在創建Session時會將該參數傳遞給Server端。最終協商確定的Session的超時時間由Zookeeper的配置參數決定,處于Zookeeper集群minSessionTimeout和maxSessionTimeout之間。默認的minSessionTimeout=2×tickTime(默認2 s)=4 s,maxSessionTimeout=20×tickTime=40 s。不管Client傳遞的Timeout多大,最終協商確定的Session的Timeout時間都在4~40 s之間,實現代碼如下。如果一切按照默認配置,則Session的Timeout為40 s。

  int sessionTimeout=connReq.getTimeOut();

  int minSessionTimeout=getMinSessionTimeout();

  if(sessionTimeout<minSessionTimeout){

  sessionTimeout=minSessionTimeout;

  }

  int maxSessionTimeout=getMaxSessionTimeout();

  if(sessionTimeout>maxSessionTimeout){

  sessionTimeout=maxSessionTimeout;

  }

  cnxn.setSessionTimeout(sessionTimeout);

  經以上分析,可以得出以下結論:Session存活意味著RegionServer存活;Session超時意味著RegionServer啟動時創建的ZNode節點被刪除,也就表明該RegionServer異常。

3 HBase中RegionServer異常后的恢復機制分析

  通過以上的分析可以看出,當HBase集群中的一個RegionServer崩潰(如RegionServer進程掛掉)后,此時該RegionServer和Zookeeper集群的Server間的Socket連接會斷開,但是二者之間的Session由于有超時時間的存在而不會立即被刪除,需要等到Session超時之后才會被Zookeeper集群刪除,只有Session超時了Zookeeper集群才會刪除該RegionServer啟動時創建的臨時節點。只有Zookeeper集群中代表此RegionServer的節點刪除后,HMaster才可以得知該RegionServer發生故障,才能啟動故障恢復流程。HMaster恢復故障時,將故障RegionServer所管理的Region一個一個重新分配到集群中。

  由此可得出以下結論:Session Timeout的存在使得HMaster無法立即發現故障RegionServer,從而延遲了故障的恢復時間,間接增加了業務中斷的時間。同時,HMaster重新分配Region的處理過程效率太低,尤其是Region數目很大時。

4 改進的RegionServer異常后的恢復措施

  針對以上場景,本文進行了如下改進:

  (1)在RegionServer的啟動腳本中加入特殊處理的代碼,在該RegionServer的進程結束前自動刪除其在Zookeeper集群中創建的ZNode節點,這樣HMaster就能立即感知到RegionServer的狀態異常事件,盡早地啟動異?;謴?,代碼如下。

  cleanZNode()

  {

  if[-f $HBASE_ZNODE_FILE];then

  #call ZK to delete the node

  ZNODE=`cat $HBASE_ZNODE_FILE`

  $bin/hbase zkcli delete $ZNODE>/dev/null 2>&1

  rm $HBASE_ZNODE_FILE

  fi

  }

 ?。?)在HMaster的恢復過程中加入特殊處理的代碼,通過批量處理,將故障RegionServer所管理的Region一次性地分配到集群中,如同HBase集群啟動時批量分配Region的過程,提高Region分配的速度。所謂批量分配,就是先獲取故障RegionServer所管理的Region數目rn和存活的RegionServer的數目rs,按照平均負載的原則,在每個存活的RegionServer上分配rn/rs個Region。這樣就可以將多個Region一次分配給一個RegionServer;而原來的分配過程則是一次分配一個Region到一個RegionServer上,顯然改進后的處理效率更高,尤其是Region數目較多時尤為明顯。

  采用以上的處理方式后,HBase集群中當一個或幾個RegionServer發生故障后,業務的恢復速度提升了幾十倍,從最初的故障恢復時間40 s左右到現在的幾秒,實測數據如表1所示。

002.jpg

5 結論

  本文在論述HBase集群與Zookeeper集群的交互機制以及RegionServer發生故障后的異常處理恢復機制的基礎上,提出了提高恢復效率、降低業務中斷時間的改進方案。該方案對于RegionServer進程的異常終止和崩潰有很好的處理效果,但是對于RegionServer斷電等物理事件導致的異常則無效,這種情況只能依靠Session Timeout后的處理流程。批量恢復的處理對所有的恢復過程都是有效的,雖然其提供的改進空間較小??傮w說來,本文提出的RegionServer崩潰后的改進措施在通常情況下能夠較好地改進現有HBase集群的性能,縮短故障恢復時間,提高故障恢復效率,從而能有效縮短業務中斷時間。

  參考文獻

  [1] Apache. HBase-0.96.2 release notes[EB/OL]. [2013-07-21].http://qnalist.com/q/hbase-user.

  [2] Cloudera. HBase-0.94.2-cdh4.2.0 reference guidep[EB/OL].[2013-07-28].http://newitfarmer.com/category/big_data/cloudera-big_data.

  [3] 陸嘉恒. Hadoop實戰(第二版)[M]. 北京:機械工業出版社,2012.

  [4] GEORGE L. HBase: the definitive guide[M]. Sebastopol: O′Reilly Media, 2011.

  [5] Apache. ZooKeeper-3.4.5 release notes[EB/OL]. [2012-11-19].http://zookeeper.apache.org/doc/r.3.4.5.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲高清免费| 亚洲欧洲日产国码二区| 久久gogo国模裸体人体| 亚洲视频综合| 在线精品高清中文字幕| 欧美国内亚洲| 国产精品国产三级国产aⅴ入口| 国产精品三区www17con| 亚洲国产三级网| 欧美jjzz| 欧美高清在线视频| 一本大道久久a久久精二百| 欧美日韩亚洲一区二区三区在线观看| 国产精品va在线播放| 中文精品99久久国产香蕉| 翔田千里一区二区| 亚洲韩国青草视频| 亚洲国产一区二区视频| 久久精品国产第一区二区三区最新章节| 欧美夫妇交换俱乐部在线观看| 亚洲曰本av电影| 国产精品永久| 欧美午夜精品久久久久久久| 国产视频精品va久久久久久| 在线免费高清一区二区三区| 欧美福利电影网| 欧美影院在线播放| 亚洲欧美日韩国产成人| 久久久中精品2020中文| 国产精品国产成人国产三级| 另类亚洲自拍| 亚洲国产天堂久久国产91| 国产精品美女主播| 亚洲老司机av| 国产精品对白刺激久久久| 欧美激情性爽国产精品17p| 欧美一级成年大片在线观看| 亚洲国产一区在线| 亚洲欧美日韩一区二区三区在线| 国产一级揄自揄精品视频| 欧美人与禽猛交乱配视频| 亚洲中午字幕| 亚洲欧美中文另类| 性色av一区二区三区| 国产精品一二三视频| 亚洲毛片在线看| 日韩亚洲欧美一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 久热精品视频| 一区二区三区精品视频| 一本大道av伊人久久综合| 91久久夜色精品国产网站| 欧美日韩在线视频首页| 国产在线观看91精品一区| 免费一级欧美片在线播放| 国产精品高潮呻吟久久av黑人| 欧美精品少妇一区二区三区| 欧美精品一区二区三区视频| 老司机67194精品线观看| 欧美专区福利在线| 欧美激情视频一区二区三区不卡| 国内精品久久久久久久影视蜜臀| 亚洲欧洲日本专区| 亚洲无线一线二线三线区别av| 亚洲人成网站影音先锋播放| 国产一区二区三区久久悠悠色av| 亚洲黄色小视频| 久久亚洲国产精品一区二区| 亚洲精品小视频| 欧美日精品一区视频| 日韩亚洲在线| 欧美高清在线视频观看不卡| 国产伦精品一区二区三区视频黑人| 欧美成人r级一区二区三区| 国产精品美女在线观看| 欧美成年人视频网站欧美| 又紧又大又爽精品一区二区| 亚洲激情在线激情| 欧美日韩伦理在线免费| 狠狠入ady亚洲精品经典电影| 欧美成在线观看| 欧美日本韩国在线| 欧美日韩成人综合在线一区二区| 久久黄色网页| 在线看片欧美| 国产精品日韩欧美综合| 久久婷婷丁香| 国产日韩欧美综合在线| 国内外成人在线视频| 国产精品视频成人| 在线日韩av永久免费观看| 亚洲欧洲精品一区二区三区| 欧美一区二区三区精品| 激情成人综合网| 欧美亚洲三级| 欧美视频精品在线观看| 久久久九九九九| 亚洲精品激情| 欧美精品在线一区二区| 国产一区观看| 亚洲精品免费在线| 韩日精品视频| 亚洲美女精品成人在线视频| 久久久久这里只有精品| 国内精品美女av在线播放| 久久九九电影| 亚洲二区在线| 国产日韩视频一区二区三区| 蜜臀a∨国产成人精品| 欧美日韩中文精品| 久久综合国产精品| 久久夜色精品国产亚洲aⅴ| 99国产欧美久久久精品| 亚洲国产一区二区视频| 欧美日韩一区二区欧美激情| 中文国产成人精品久久一| 欧美国产日韩a欧美在线观看| 久久久久国产精品一区三寸| 久久久久久亚洲精品中文字幕| 久久久久久国产精品mv| 欧美裸体一区二区三区| 亚洲免费影视| 欧美大片免费观看| 欧美日韩在线视频观看| 亚洲免费中文| 国产三级精品三级| 久久精品五月| 精品动漫一区| 国产免费一区二区三区香蕉精| 久久久久久久综合色一本| 激情成人av| 国产精品影院在线观看| 好吊色欧美一区二区三区视频| 欧美激情黄色片| 亚洲综合视频1区| 在线视频国内自拍亚洲视频| 国产欧美一二三区| 亚洲国产日韩欧美在线动漫| 激情文学综合丁香| 亚洲免费精品| 99v久久综合狠狠综合久久| 一本色道**综合亚洲精品蜜桃冫| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲综合日韩在线| 亚洲成人原创| 先锋影音网一区二区| 欧美波霸影院| 欧美在线黄色| 激情文学一区| 欧美丝袜一区二区三区| 欧美一区二区性| 欧美一区二区视频网站| 亚洲视频在线观看三级| 亚洲激情专区| 另类欧美日韩国产在线| 欧美一区二区精品久久911| 久久影院午夜片一区| 欧美日韩一区二区国产| 久久婷婷人人澡人人喊人人爽| 亚洲高清在线精品| 激情久久久久久久久久久久久久久久| 亚洲欧美欧美一区二区三区| 亚洲精品视频在线观看免费| 亚洲国产日韩一区| 亚洲一级二级| 亚洲国产日韩美| 国产农村妇女精品| 久久久久成人精品免费播放动漫| 亚洲国产专区校园欧美| 在线播放国产一区中文字幕剧情欧美| 国产精品日韩欧美一区二区三区| 亚洲日本欧美日韩高观看| 久久精品一区蜜桃臀影院| 亚洲免费视频在线观看| 国产视频精品va久久久久久| 在线观看日韩av电影| 亚洲精品无人区| 在线精品视频免费观看| 国产嫩草影院久久久久| 欧美色道久久88综合亚洲精品| 极品少妇一区二区三区精品视频| 久久久久久69| 最近中文字幕mv在线一区二区三区四区| 久久国产福利国产秒拍| 久久综合国产精品台湾中文娱乐网| 欧美激情视频网站| 国产亚洲一区二区在线观看| 亚洲国产99精品国自产| 欧美国内亚洲| 欧美三级电影一区| 亚洲人成啪啪网站| 久久久综合香蕉尹人综合网| 欧美一区二区精品久久911| 久久精品国产一区二区三区| 欧美精品一区二区三区一线天视频| 久久成人精品无人区| 国产亚洲va综合人人澡精品| 欧美一区二区三区四区在线观看地址| 国产在线精品二区| 欧美成人午夜视频| 亚洲国产日韩欧美综合久久| 欧美日本久久| 国产一区在线免费观看| 精品粉嫩aⅴ一区二区三区四区| 日韩亚洲精品电影| 欧美欧美全黄| 欧美高清视频| 亚洲国产91精品在线观看| 永久555www成人免费| 99精品国产99久久久久久福利| 一区二区在线看| 国产人成精品一区二区三| 国产精品少妇自拍| 久久精品视频免费| 午夜精品一区二区三区电影天堂| 亚洲欧美自拍偷拍| 亚洲第一在线视频| 黄色亚洲精品| 亚洲电影视频在线| 国产精品永久在线| 亚洲精品国产无天堂网2021| 羞羞视频在线观看欧美| 性欧美videos另类喷潮| 久久久久久久综合日本| 亚洲一区二区欧美| 久久蜜桃资源一区二区老牛| 国产亚洲电影| 伊人精品视频| 国产日产欧美一区| 一区二区三区在线视频免费观看| 最新日韩精品| 国产午夜精品一区二区三区视频| 国产午夜精品在线观看| 红杏aⅴ成人免费视频| 欧美精品九九99久久| 亚洲一线二线三线久久久| 欧美色图一区二区三区| 欧美日韩免费高清| 久久免费视频网站| 久久久99国产精品免费| 麻豆精品在线观看| 裸体一区二区三区| 欧美精品九九| 亚洲三级性片| 伊人天天综合| 亚洲精品在线看| 亚洲激情视频在线| 亚洲毛片一区| 欧美色偷偷大香| 欧美新色视频| 国产在线播精品第三| 国产伦精品一区二区三区照片91| 欧美女人交a| 欧美亚洲免费电影| 国产精品久久久久久影院8一贰佰| 亚洲国产91精品在线观看| 久久五月天婷婷| 欧美激情一区在线| 一区二区三区国产精品| 日韩一级大片| 国产一区二区三区四区在线观看| 在线亚洲观看| 日韩手机在线导航| 亚洲午夜日本在线观看| 亚洲视频电影在线| 国产精品美女诱惑| 国产精品日韩电影| 国产中文一区二区三区| 亚洲欧美日韩另类| 99国产精品久久久久久久久久| 亚洲一区二区在线视频| 一本到高清视频免费精品| 亚洲一区二区三区精品动漫| 久久精品夜夜夜夜久久| 国产精品久久久久久久久免费桃花| 久久精品首页| 一区二区在线视频观看| 欧美一区二区三区免费大片| 好看的日韩视频| 原创国产精品91| 久久免费黄色| 牛夜精品久久久久久久99黑人| 国产欧美日韩一区二区三区在线| 欧美欧美午夜aⅴ在线观看| 亚洲图片欧美一区| 亚洲破处大片| 久久久精品日韩| 亚洲欧美日韩国产| 久久久免费精品视频| 国产欧美日韩免费看aⅴ视频| 欧美一区二区三区啪啪| 老司机午夜精品视频在线观看| 久久精品综合一区| 欧美xart系列在线观看| 欧美在线免费| 国产精品午夜在线观看| 99在线精品视频在线观看| 久热精品在线| 美女爽到呻吟久久久久| 亚洲一区二区三区欧美| 国产精品久久久久久模特| 韩国免费一区| 欧美顶级艳妇交换群宴| 国产欧美欧美| 亚洲校园激情| 国产精品视屏| 欧美精品99| 国产亚洲精品bt天堂精选| 国产女主播一区二区三区| 欧美精品二区| 久久久久久9999| 国产一区观看| 狠狠狠色丁香婷婷综合久久五月| 午夜国产精品视频| 亚洲精品国产拍免费91在线| 欧美自拍丝袜亚洲| 久久综合国产精品台湾中文娱乐网| 亚洲天堂视频在线观看| 悠悠资源网久久精品| 欧美高清影院| 国产精品老女人精品视频| 国产午夜精品麻豆| 免费成人网www| 国产日本欧洲亚洲| 欧美国产免费| 免费毛片一区二区三区久久久| 久久蜜桃香蕉精品一区二区三区| 另类欧美日韩国产在线|