重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

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

这篇文章主要介绍“怎么解决由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重启失败问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


新闻标题:怎么解决由MasterProcWals状态日志过多导致的HBaseMaster重启失败问题
URL分享:http://cqcxhl.cn/article/iiochp.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP