中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

導致Hbase掛掉的場景

發布時間:2020-08-05 14:45:59 來源:網絡 閱讀:1325 作者:zlfwmm 欄目:關系型數據庫

導致Hbase掛掉的場景
HMaster
HMaster會出現異常(執行abort())停止的場景如下:
1.zk異常導致的master停止服務是最常見的場景,涉及操作包含但不限于以下:
  a)Zk鏈接超時,超時時間通過zookeeper.session.timeout配置,默認為3分鐘, 如果fail.fast.expired.active.master配置的值為false(默認為false),則不會立即abort,而是會嘗試恢復zk的過期session;
  b)在打開region后,需要從zk中刪除opened節點,如果zk有該節點,但是刪除失敗;
  c)在split region過程中,從zk刪除split節點時;
  d)Master節點改變時;
  e)從zk中創建unassigned節點時;
  f)在下線disabled的regoin時,從zk中刪除disabled的region如果發生zk異常;
  g)還有很多操作zk的節點時如果出現異常。
2.在assign時,如果設置region為offlined狀態,但是region之前的狀態不是closed或者offlined;
3.在assign時,如果無法從.META.表中讀取region信息;
4.把新的hbase集群加入到正在運行的hbase集群時,如果zk的/hbase/unassigned節點沒有數據;
5.使用線程池批量分配region時,如果出現未被捕獲的異常,實現方式如下:
6.在啟動master的服務線程時,出現了異常;
7.在hdfs中檢查hbase日志路徑時,發現了dead的server時,需從hdfs中讀出log,如果出現io異常需要檢查hdfs文件系統,如果fsOk狀態為true,但是通過FSUtils工具類進行檢查時出現io異常;
8.在校驗并且分配-ROOT-的region時,如果zk異常,或者其它異常(其它異常會重試10次),比如:“-ROOT- is onlined on the dead server”。

HRegionServer
HRegionServer會出現異常停止(執行abort())服務的場景如下:
1.在讀寫hdfs時如果出現IOException異常,此時會發起hdfs的文件系統檢查(checkFileSystem)1.          
2.Regionserver的服務線程出現了未捕獲異常;
3.在啟動HRegionServer時出現異常;
4.在進行HLog回滾時,出現異常;
5.在flush memstore時,如果持久化失敗,會重啟RS,在重啟中把hlog的內容重新加載到memstore;
6.出現zk異常,包括但不限于以下場景:
  a)Zk鏈接超時,超時時間通過zookeeper.session.timeout配置,默認為3分鐘,與master不同,如果zk操作不會重試;
  b)啟動HRegionServer時出現KeeperException異常;
  c)在進行split操作時,如果出現異常會進行回滾操作,在回滾過程中需要從zk中刪除region的spliting狀態,如果刪除時出現KeeperException或者回滾的其它操作出現異常;
  d)在打開region時,出現了KeeperException異常;
  e)在進行hbase集群復制時,很多與zk交互的操作出現KeeperException異常時均會導致abort;
7.在close region時,如果出現異常,比如:不能成功的flush memstore;
8.Flush memstore時,如果HLog發現該region已經在flush則會強制終止JVM,采用的是Runtime.getRuntime().halt(1)方法,該方法不會執行正常退出的關閉鉤子,從而不會flush RS的所有region,也不會遷移region,只有等待ZK的session超時后master才會發現該RS不可用,做遷移工作。

總結
Hbase掛掉的可能性有很多,主要由zk或者hdfs的問題導致,因此zk、hdfs的可用對于hbase極其重要,關于zk:
1.zk如果停止了服務則在很多時候會導致master、rs掛掉,hbase集群基本上就失去了服務的能力,因此zk一定要是穩定可靠的,當client已經于rs建立了鏈接,這時zk掛掉,如果不進行split等小數與zk交互失敗會導致觸發rs的abort()的操作時rs還是可以提供服務的;
2.如果rs/master進行了長時間的gc或者改動了服務器時間,導致出現zk的session超時會導致rs/master停止服務,目前已經出現了2次因為服務器時間變化導致hbase停止服務的事故;
3.別輕易人為改變zk的hbase節點數據,master/rs在進行很多操作時會比較依賴zk的數據,如果發現不符合預期可能會導致master/rs停止服務,尤其是master。
Master通過ZK知道RS是否可用,一般情況下RS在停止服務時均會正常退出,在正常退出時會從ZK中刪除/hbase/rs/$regionserver的節點,Master會監聽該節點的被刪除,從而較快的(速度取決于所有region關閉時間)對該RS負責的region進行重新分配,如果是強制退出,比如 kill -9或者出現HRegionServer掛掉的第8條時則只有等待ZK的session超時時才會刪除RS在ZK的節點(RS在ZK中添加節點時采用的是CreateMode.EPHEMERAL模式,該模式創建的節點會在session關閉時自動刪除),那時Master才會進行重新assign。
Kill RS的進程也是正常退出(不能使用kill -9強制退出),RS使用Runtime的addShutdownHook方法注冊了jvm關閉鉤子,在關閉鉤子中會執行RS的退出邏輯,實際上hbase-daemon.sh的停止RS就是采用kill。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂温| 凤阳县| 新和县| 嵊州市| 巴马| 内黄县| 东乡县| 汝州市| 万载县| 木兰县| 若羌县| 鄂托克旗| 乐业县| 偏关县| 伊春市| 仁寿县| 芒康县| 嘉定区| 南宁市| 兴海县| 铁力市| 苗栗市| 麻栗坡县| 朝阳区| 渭南市| 平罗县| 宜都市| 五莲县| 永和县| 八宿县| 尤溪县| 晋城| 崇左市| 翁牛特旗| 东兰县| 甘南县| 潮安县| 栾城县| 巢湖市| 忻城县| 三亚市|