#事件起因:
本次生产环境事件的起因是由于为了验证当服务器时间晚于当前时间是否会对hadoop集群造成影响。实际操作,将整个集群的服务器时间修改为2050-01-01.
基本环境
服务器5台
hadoop1 10.212.51.10 namenode、resourcemanager、zkfc、hmaster
hadoop2 10.212.51.11 namenode、resourcemanager、zkfc、hmaster
hadoop3 10.212.51.12 JournalNode、datanode、NodeManager、zk、regionserver
hadoop4 10.212.51.11 JournalNode、datanode、NodeManager、zk、regionserver
hadoop5 10.212.51.11 JournalNode、datanode、NodeManager、zk、regionserver
事件发生过程
#1. 修改服务器时间
date -s 2050-01-01
之后将时间恢复正常现在的时间,导致hbase访问异常报错如下,此处是看的master的日志,建议所有节点的日志都查看一下。
vim $hbasehome/log/hbase/hbase-hadoop1.log
日志内容
第一张图提到probably a clock skew时间偏移
第二张图红框是重点
问题排查过程
根据日志提示可以看出是这个目录/sfdcloud/hbase/oldWALs中的文件时间戳不正确。导致平台异常,无法正常提供服务。
处理问题
删除oldWALs
hdfs dfs -rmr /sfdcloud/hbase/oldWALs
删除完成后操作
关闭hbase、hadoop、zookeeper
重新启动整个集群,备注:胖虎当时还重置了zookeeper,如何重置zookeeper请自行查阅。下面是简单的说法。
格式化 ZKFC
这个操作是如果将zokeeper节点数据删除了,那么就需要重新初始化。
/opt/hadoop/bin/hdfs zkfc -formatZK
至此,由于修改了时间之后导致的hbase平台异常的问题处理完成。
***备注:此方式没有验证是否有丢数据的风险,有待验证。***
作者:一只胖胖虎