温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么解决由MasterProcWals状态日志过多导致的HBase Master重启失败问题

发布时间:2021-12-09 09:41:32 来源:亿速云 阅读:343 作者:iii 栏目:大数据

这篇文章主要介绍“怎么解决由MasterProcWals状态日志过多导致的HBase Master重启失败问题”,在日常操作中,相信很多人在怎么解决由MasterProcWals状态日志过多导致的HBase Master重启失败问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决由MasterProcWals状态日志过多导致的HBase Master重启失败问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1 文档编写目的

本文主要讲述如何解决由MasterProcWals状态日志过多导致的HBase Master重启失败问题。

测试环境:

操作系统版本为Redhat7.2

CM和CDH版本为5.13.1

2     问题描述

由于某些已知存在的问题,会导致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(不含副本)

3     解决方案

3.1  问题解决

该问题主要和HBase某个分支的实现方式有关,据说已经重新设计了该实现方式,新的实现方式能够避免该问题,将在CDH 6中应用。

如果出现由MasterProcWals状态日志过多导致的HBase Master重启失败问题建议先将/hbase/MasterProcWALs目录下的所有文件备份,然后删除/hbase/MasterProcWALs目录下的所有文件,重启HBase Master即可解决问题。

3.2  相关建议

建议启用HBase Master 日志清除器插件,定时清理日志。

怎么解决由MasterProcWals状态日志过多导致的HBase Master重启失败问题

目前默认配置的清除器插件有ReplicationLogCleaner、SnapshotLogCleaner和TimeToLiveLogCleaner这三种:

  • ReplicationLogCleaner:如果有跨集群数据同步的需求,通过该Cleaner来保证那些在同步中的日志不被删除;

  • SnapshotLogCleaner:被表的snapshot使用到了的wal不被删除;

  • TimeToLiveLogCleaner:日志文件最后修改时间在配置参数{hbase.master.logcleaner.ttl默认600秒}之前的可以删除。

到此,关于“怎么解决由MasterProcWals状态日志过多导致的HBase Master重启失败问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI