我已经建立了一个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的故障!
1条答案
按热度按时间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就被认为是死的。
相关属性包括: