

最近,看了几部女主戏,觉得里面的男绿叶眼神里总是饱含着忧伤,总是不快乐。其实女主戏里的男主,更加真实,因为他们背负着女主给他们的压力和不快乐。比如,最近HDFS集群不时会有以下异常:

每次出现该异常,重启HDFS集群,就可以恢复正常。但生产环境肯定不能三天两头重启集群。于是尝试HA机制下滚动重启。
系统的NameNode已经开启了HA模式,即主备模式。

最开始,由于异常发生在NameNode主节点,认为是主节点checkpoint发生异常,故重启主节点,预期会产生主备切换,但重启之后,并未发生主备切换,主节点依然不良。
并且在活动节点重启时,发生了以下告警:

意味着并未发生主备切换,而是集群直接不良,也就是说,其实出问题的是备用节点。
那就直接重启备用节点好了,依然出现开始的问题。
也就是说,备用节点上的checkpoint出现了问题,可能和主节点不同步。
尝试停止备用节点,删除备用节点上的/dfs/nn1目录,并把主节点的/dfs/nn1目录scp到备用节点上。再启动,问题解决。
结论:备用节点因为未知原因失去了和JournalNodes的通信,导致落后,但备用节点在重启之后并不会追赶主节点的事务变化。可能和JournalNodes的设计是轻量级,并未保存失去通信和重启这一段时间所有的事务。因此必须通过手动同步实现主备节点的edit log一致。以上仅是个人推测,还望运维店长斧正。