namenode没有检测到datanodes失败

r6l8ljro  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(338)

我已经建立了一个hadoop高可用集群,包括3个节点作为主节点(3个日志节点、活动namenode和备用namenode,没有辅助namenode)和3个datanode。使用命令 hadoop-daemon.sh start journalnode hadoop-daemon.sh start namenode hadoop-daemon.sh start zkfc 我启动namenode服务并使用命令 hadoop-daemon.sh start datanode 我启动datanode服务。
问题是当我故意使用命令停止datanode时 hadoop-daemon.sh stop datanode ,在namenodes webui中(包括active和standby),即使几分钟后,它仍然被视为活动节点,我认为namenodes不会检测到datanode的故障!

ruarlubt

ruarlubt1#

对于未来的读者,从这里:
数据节点在以下情况下被视为过时:
dfs.namenode.stale.datanode.interval<上次联系时间<(2*dfs.namenode.heartbeat.recheck interval)
在namenode ui datanodes选项卡中,过时的datanode将突出显示,因为它在活动datanodes中的最后一个联系人的值较大(在jmx输出中也可用)。当datanode过时时,它将被赋予最低的读写优先级。
使用默认值,namenode将在其心跳消失30秒时认为datanode过时。再过10分钟没有心跳(总共10.5分钟)后,一个datanode就被认为是死的。
相关属性包括:

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

相关问题