11.1 DataNode工作机制
NameNode
是存储的数据的元数据
而DataNode
是用来存储具体数据的, 通过DataNode
的名字就可以看出来.
一个数据块以文件的显示存储在磁盘上.
一个块一般包括 2 个文件:
- 数据本身
- 块的元数据: 数据块的长度, 块数据的校验和, 以及时间戳
DataNode
启动后向NameNode
注册. 通过后, 周期性(每隔 1 小时)的向NameNode
上报自己的所有块信息DataNode
每个 3 秒就会给NameNode
上报一下自己的位置, 证明自己还活着. 我们称为DataNode
的心跳机制.NameNode
会返回给DataNode
一些信息: 如复制块数据到另外的DataNode
, 或者删除某块数据.如果
NameNode
超过 10 分钟没有收到某个DataNode
的心跳, 则认为这个DataNode
已经不存在了. 以后就不会从这个节点读数据或者向这个节点写数据.集群运行中也可以加入或退出一些机器.