Hadoop HA Namenode goes down with the Error: flush failed for required journal (JournalAndStream(mgr=QJM to [< ip >:8485, < ip >:8485, < ip >:8485]))

Hadoop HA Namenode goes down with the Error: flush failed for required journal (JournalAndStream(mgr=QJM to [< ip >:8485, < ip >:8485, < ip >:8485]))

Hadoop Namenode 几乎每天都会宕机一次。

FATAL namenode.FSEditLog (JournalSet.java:mapJournalsAndReportErrors(398)) - 

**Error: flush failed for required journal** (JournalAndStream(mgr=QJM to [< ip >:8485, < ip >:8485, < ip >:8485], stream=QuorumOutputStream starting at txid <>))
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:107)
    at org.apache.hadoop.hdfs.server.namenode.EditLogOutputStream.flush(EditLogOutputStream.java:113)
    at 

有人可以建议我解决这个问题需要注意哪些事项吗?

我正在为日志节点和主节点使用虚拟机。它会引起任何问题吗?

来自您粘贴的错误。看来您的日志节点无法及时与 NN 对话。发生此事件时发生了什么?

既然你提到你的节点是虚拟机,我猜你超载了虚拟机管理程序,或者它在从 NN 到 JN 和 zk quorum 的谈话中遇到了麻烦。

在我的例子中,这个问题是由于集群节点之间的系统时间不同造成的。

为了保持系统时间同步,我们可以在每个节点执行以下命令。

sudo service ntpd stop

sudo ntpdate pool.ntp.org  # Run this command multiple times

sudo service ntpd start

如果 hue 关闭,运行 在 hue 服务器计算机上执行以下命令

sudo service hue start

如果namenode挂了,启动namenode。

重复修复

在环境的所有节点上为 root 用户添加一个 crontab。

安装VM工具,保持系统时间同步。