问题描述
发现active namenode上的fsimage是4月4日的,而standby namenode上的fsimage是4月21日。说明没有及时同步fsimage,担心后续切换可能会出问题。
定位
根据配置,fsimage至少每个小时就会同步一次,查看两个namenode的日志中相关记录:
Standby namenode:
2019-04-21 10:04:29,853 INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Uploaded image with txid 1260456917 to namenode at node05:50070 in 27.421 seconds
Active namanode:
2019-04-21 10:04:28,728 INFO org.apache.hadoop.hdfs.server.namenode.TransferFsImage: Downloaded file fsimage.ckpt_0000000001260456917 size 1109646913 bytes.
日志没有任何错误,说明fsimage的同步机制工作正常。
查看配置hdfs-site.xml中dfs.namenode.name.dir的配置,发现配置了两个目录:/disk1/hadoop/namenode_dir,/disk2/hadoop/namenode_dir
分别查看这两个目录,发现disk1的目录是不同步的,而disk2下的目录是正常同步了的。
继续追active namenode的日志,发现有很多针对disk2的操作,但一个针对disk1的都没有。而理论上,两个目录的操作完全一致才是正常的。
经过询问相关IT人员,4月4日disk1磁盘发生过写满的情况!
Active namenode发现目录不可用,应该会打印错误日志,不过时间过去太久,当时的日志已经被冲掉了。
后续
namenode发现目录不可用之后,后面不会再尝试读写该目录是否恢复可用了。
关注dfs.namenode.name.dir.restore参数的作用,待研究。
来源:oschina
链接:https://my.oschina.net/u/4302004/blog/3521075