大数据存储数据节点
DataNode 是什么?
真正存块的机器,定期向 NameNode 汇报自己有哪些块
类比:一排排书架,书实际摆在这里,还要定期报库存
日常做什么
三件事:响应客户端的读写请求、执行副本复制流水线、每 3 秒向 NameNode 发一次心跳。心跳里带上自己持有的块列表,NameNode 据此维护块映射。
心跳超时(默认 10.5 分钟)就判定该节点死亡,它上面的副本会被标记为缺失,然后从其他副本复制补齐。
读写都不经过 NameNode
客户端拿到块位置后直连 DataNode 传数据,NameNode 只做“指路”。所以集群带宽不会卡在 NameNode 上,这也是 HDFS 能扛住高吞吐的原因之一。
磁盘坏了怎么办
DataNode 会定期做块扫描(block scanner),发现校验和不匹配就上报 NameNode,由 NameNode 从其他副本重新复制。整个过程自动完成,业务无感知——这就是“坏机器是常态”的设计前提。