Datanode原理:
除了能直接破坏数据本身的行为之外,也有一些因素能引起数据无法使用(如网络)。
心跳机制:namenode每隔3秒会询问datanode,查看datanode的情况。
步凑:
1.在启动服务的时候,DN向NN注册,告诉
当前节点的存储情况
2.NN告知DN,注册成功
3.DN每隔一个小时,向NN发送一次自己当前存储的情况
4.NN每隔3秒(心跳机制)向DN发送来连接测试请求,保持节点之间的联通
5.如果发送的心跳机制10分钟没有回应,断定当前datanode不可用。要么宕机,要么网络连接不好。
两个配置。
<property>
<name>dfs.heartbeat.interval</name>
<value>3</value>
<description>Determines datanode heartbeat interval in seconds.</description>
</property>
<property>
<name>dfs.namenode.heartbeat.recheck-interval</name>
<value>300000</value>
<description>
This time decides the interval to check for expired datanodes.
With this value and dfs.heartbeat.interval, the interval of
deciding the datanode is stale or not is also calculated.
The unit of this configuration is millisecond.
</description>
</property>
超时时间:2dfs.namenode.heartbeat.recheck-interval+10dfs.heartbeat.interval(=10分30秒。)