hadoop datanode 和namenode之间的心跳

做作业的过程中发现,把一节点停掉,dfsadmin和50070都无法马上感知到一个data node已经死掉

HDFS默认的超时时间为10分钟+30秒。
这里暂且定义超时时间为timeout
计算公式为:

timeout  = 2 * heartbeat.recheck.interval + 10 * dfs.heartbeat.interval

而默认的heartbeat.recheck.interval 大小为5分钟,dfs.heartbeat.interval默认的大小为3秒。
需要注意的是hdfs-site.xml 配置文件中的heartbeat.recheck.interval的单位为毫秒,dfs.heartbeat.interval的单位为秒
所以,举个例子,如果heartbeat.recheck.interval设置为5000(毫秒),dfs.heartbeat.interval设置为3(秒,默认),则总的超时时间为40秒

<!--注:在cdh5.14.2中,heartbeat.recheck.interval 已废弃,新的属性是:dfs.namenode.heartbeat.recheck-interval -->
<property>
        <name>heartbeat.recheck.interval</name>
        <value>5000</value>
</property>

<property>
        <name>dfs.heartbeat.interval</name>
        <value>3</value>
</property>

关于心跳的问题:

如果在生产环境中,突然有一个datanode服务器宕机了,那么这个时候对于hdfs的读写会有什么样的影响呢?

原文地址:https://www.cnblogs.com/chengjunhao/p/9102486.html