DataNode工作机制
客户端是先访问NameNode来获取DataNode的信息,在DataNode启动时会先向NameNode进行注册,之后每隔一段时间向NameNode上报一次块信息,NameNode每隔一段时间也会向DataNode发送心跳检测来检测节点是否可用
验证数据完整性
DataNode来存储数据,如何判断所存储的数据是完整的,没有存在问题呢?
- DataNode读取Block时,计算CheckSum
- 如果计算出来的CheckSum和创建时不相同的话,说明Block已经损坏了
配置
在进行心跳检测时,如果超过一段时间DataNode没有回复,则认为该节点不可用,该超时时长默认为10分钟+30秒
计算公式为
1 | TimeOut = 2*dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval |
1 | <property> |