Namenode不检测datanode故障

时间:2018-01-20 09:24:29

标签: hadoop hdfs

我已经建立了一个Hadoop高可用集群,包括3个节点作为主节点(3个日志节点,活动名称节点和备用名称节点,没有辅助名称节点)和3个数据节点。 使用命令

hadoop-daemon.sh start journalnode hadoop-daemon.sh start namenode hadoop-daemon.sh start zkfc

我启动namenode服务并使用命令hadoop-daemon.sh start datanode启动datanode服务。

问题是当我故意使用命令hadoop-daemon.sh stop datanode停止datanode时,在名称节点WebUI中,(即使在活动和待机状态下)即使在几分钟之后,它仍被视为活动节点,我认为名称节点不是t检测datanode的失败!

1 个答案:

答案 0 :(得分:2)

对于未来的读者,来自here

在以下情况下,datanode被视为陈旧:

  

dfs.namenode.stale.datanode.interval<最后一次联系< (2 *   dfs.namenode.heartbeat.recheck间隔)

在NameNode UI Datanodes选项卡中,由于实时数据节点之间的最后一次联系具有更大的值(在JMX输出中也可用),过时的datanode将脱颖而出。当datanode过时时,它将被赋予最低的读写优先级。

使用默认值时,namenode会在心跳不存在30秒时将其视为datanode陈旧。再过10分钟没有心跳(总共10.5分钟),数据节点被认为是死的。

相关属性包括:

dfs.heartbeat.interval - default: 3 seconds
dfs.namenode.stale.datanode.interval - default: 30 seconds
dfs.namenode.heartbeat.recheck-interval - default: 5 minutes
dfs.namenode.avoid.read.stale.datanode - default: true
dfs.namenode.avoid.write.stale.datanode - default: true
相关问题