做作业的过程中发现,把一节点停掉,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的读写会有什么样的影响呢?