一、DataNode工作机制
1.一个数据块在DataNode上存储,是以文件的形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。
2.DataNode启动后,会像NameNode注册,注册后会周期性向NameNode上报所有的块信息。
3.心跳每三秒一次,心跳返回结果带有NameNode给该DataNode的命令,如:复制块数据到另一台机器,或者删除某个块。如果超过十分钟没有收到某个DataNode的心跳,则认为该节点不可用。
4.集群运行中可以安全的加入或退出一些机器。
二、数据完整性
DataNode确保数据完整性的方法:
1.当DataNode读取块的时候,会计算CheckSum(校验和)。
2.如果计算后的校验和,与数据块刚创建的值不一样,就说明该数据块已损坏。
3.客户端就回去读取其他节点的数据块。
4.DataNode在其文件创建后,会周期性的验证校验和。