您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么解決由MasterProcWals狀態日志過多導致的HBase Master重啟失敗問題”,在日常操作中,相信很多人在怎么解決由MasterProcWals狀態日志過多導致的HBase Master重啟失敗問題問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么解決由MasterProcWals狀態日志過多導致的HBase Master重啟失敗問題”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
本文主要講述如何解決由MasterProcWals狀態日志過多導致的HBase Master重啟失敗問題。
測試環境:
操作系統版本為Redhat7.2
CM和CDH版本為5.13.1
由于某些已知存在的問題,會導致MasterProcWals狀態日志過多,如果重啟HBase Master,可能會導致HBase Master啟動失敗。因為HBase Master進入活動狀態需要讀取并實例化所有正在運行的程序當前記錄在/hbase/MasterProcWALs/目錄下對應的文件。如果此文件夾太大,HBase Master將在完全變為活動狀態之前超時并崩潰。
問題特征:
1、HBase Master 重啟失敗前,會打印出類似的日志:
2018-07-07 17:43:08,619 INFOorg.apache.hadoop.hbase.util.FSHDFSUtils: Recover lease on dfs filehdfs://nameservice1/hbase/MasterProcWALs/state-00000000000000084815.log 2018-07-07 17:43:08,619 INFOorg.apache.hadoop.hbase.util.FSHDFSUtils: Recovered lease, attempt=0 onfile=hdfs://nameservice1/hbase/MasterProcWALs/state-00000000000000084815.logafter 0ms 2018-07-07 17:43:08,624 INFOorg.apache.hadoop.hbase.util.FSHDFSUtils: Recover lease on dfs filehdfs://nameservice1/hbase/MasterProcWALs/state-00000000000000084816.log 2018-07-07 17:43:08,625 INFOorg.apache.hadoop.hbase.util.FSHDFSUtils: Recovered lease, attempt=0 onfile=hdfs://nameservice1/hbase/MasterProcWALs/state-00000000000000084816.logafter 1ms 2018-07-07 17:43:08,630 INFO org.apache.hadoop.hbase.util.FSHDFSUtils:Recover lease on dfs filehdfs://nameservice1/hbase/MasterProcWALs/state-00000000000000084859.log 2018-07-07 17:43:08,630 INFOorg.apache.hadoop.hbase.util.FSHDFSUtils: Recovered lease, attempt=0 onfile=hdfs://nameservice1/hbase/MasterProcWALs/state-00000000000000084859.logafter 0ms 2018-07-07 17:43:08,678 FATALorg.apache.hadoop.hbase.master.HMaster: Failed to become active master java.lang.NullPointerException |
2、查看HBase Master日志,還能看到如下信息:
2018-07-07 17:43:38,978 WARN org.apache.hadoop.hdfs.BlockReaderFactory:I/O error constructing remote block reader. java.net.SocketException: Too manyopen files |
3、通常你能夠在/hbase/MasterProcWALs目錄下看到大量的日志文件,并且這些日志文件占用HDFS存儲空間總和可能已經達到TB級別了。可以通過如下命令查看/hbase/MasterProcWALs目錄占用HDFS存儲空間大小:
hdfs dfs -du -s -h /hbase/MasterProcWALs
注:執行該命令后,我的/hbase/MasterProcWALs目錄大小將近10 TB(不含副本)
該問題主要和HBase某個分支的實現方式有關,據說已經重新設計了該實現方式,新的實現方式能夠避免該問題,將在CDH 6中應用。
如果出現由MasterProcWals狀態日志過多導致的HBase Master重啟失敗問題建議先將/hbase/MasterProcWALs目錄下的所有文件備份,然后刪除/hbase/MasterProcWALs目錄下的所有文件,重啟HBase Master即可解決問題。
建議啟用HBase Master 日志清除器插件,定時清理日志。
目前默認配置的清除器插件有ReplicationLogCleaner、SnapshotLogCleaner和TimeToLiveLogCleaner這三種:
ReplicationLogCleaner:如果有跨集群數據同步的需求,通過該Cleaner來保證那些在同步中的日志不被刪除;
SnapshotLogCleaner:被表的snapshot使用到了的wal不被刪除;
TimeToLiveLogCleaner:日志文件最后修改時間在配置參數{hbase.master.logcleaner.ttl默認600秒}之前的可以刪除。
到此,關于“怎么解決由MasterProcWals狀態日志過多導致的HBase Master重啟失敗問題”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。