问题描述
在我们的一个平台上,HDFS namenode 每 1 或 3 天关闭一次并显示以下错误消息
FATAL namenode.FSEditLog (JournalSet.java:mapJournalsAndReportErrors(390)) - Error: flush Failed for required journal (JournalAndStream(mgr=QJM to [<ip1>:<port>,<ip2>:<port>,etc],stream=QuorumOutputStream starting at txid 29873171))
java.io.IOException: Timed out waiting 20000ms for a quorum of nodes to respond.
at org.apache.hadoop.hdfs.qjournal.client.AsyncLoggerSet.waitForWriteQuorum(AsyncLoggerSet.java:137)
at org.apache.hadoop.hdfs.qjournal.client.QuorumOutputStream.flushAndSync(QuorumOutputStream.java:109)
at org.apache.hadoop.hdfs.server.namenode.EditlogoutputStream.flush(EditlogoutputStream.java:113)
at org.apache.hadoop.hdfs.server.namenode.EditlogoutputStream.flush(EditlogoutputStream.java:107)
at org.apache.hadoop.hdfs.server.namenode.JournalSet$JournalSetoutputStream$8.apply(JournalSet.java:525)
at org.apache.hadoop.hdfs.server.namenode.JournalSet.mapJournalsAndReportErrors(JournalSet.java:385)
at org.apache.hadoop.hdfs.server.namenode.JournalSet.access$100(JournalSet.java:55)
at org.apache.hadoop.hdfs.server.namenode.JournalSet$JournalSetoutputStream.flush(JournalSet.java:521)
at org.apache.hadoop.hdfs.server.namenode.FSEditLog.logSync(FSEditLog.java:710)
at org.apache.hadoop.hdfs.server.namenode.FSEditLogAsync.run(FSEditLogAsync.java:188)
at java.lang.Thread.run(Thread.java:748)
在这个 FATAL 日志之前,我们可以看到以下类型的日志,我们可以在这些日志上检测响应时间的下降
WARN client.QuorumJournalManager (QuorumCall.java:waitFor(185)) - Waited 18014 ms (timeout=20000 ms) for a response for sendEdits. Succeeded so far: [<ip1>:<port>,<ip2>:<port>]
您是否遇到过这个问题,您有什么建议可以解决吗?
我们已经:
- 检查我们的虚拟机时间是否同步
- 检测到当问题发生时,网络上正在处理大量数据,但尚未检测到根本原因
- 检查了我们的网络设备。除了我们将要修复的端口从 UP 状态快速变为 DOWN 状态的问题外,网络似乎是正确的
提前致谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)