仔细查看NN的日志和源代码的分析,发现此时Namenode在此期间执行了很多时间(持续超过1分钟),从而导致Journal Node超时(默认20S)的出口。同时,可以从JN的日志中可以看出,背后没有NN请求(因为NN已被悬挂)。
那么,为什么它会导致许多长期的全GC?主要是Namenode桩的内存几乎已经用尽了。结果,长期以来一直在做的GC使得该写入Journal Node timeout,从而导致自动故障传输。
通过此问题的调查,我还整理了下一个集群,发现一些不合理的地方已经处理了:
原始:https://juejin.cn/post/7099654106779746340