中间件速查手册
大数据存储数据节点

DataNode 是什么?

真正存块的机器,定期向 NameNode 汇报自己有哪些块

类比:一排排书架,书实际摆在这里,还要定期报库存

日常做什么

三件事:响应客户端的读写请求、执行副本复制流水线、每 3 秒向 NameNode 发一次心跳。心跳里带上自己持有的块列表,NameNode 据此维护块映射。

心跳超时(默认 10.5 分钟)就判定该节点死亡,它上面的副本会被标记为缺失,然后从其他副本复制补齐。

读写都不经过 NameNode

客户端拿到块位置后直连 DataNode 传数据,NameNode 只做“指路”。所以集群带宽不会卡在 NameNode 上,这也是 HDFS 能扛住高吞吐的原因之一。

磁盘坏了怎么办

DataNode 会定期做块扫描(block scanner),发现校验和不匹配就上报 NameNode,由 NameNode 从其他副本重新复制。整个过程自动完成,业务无感知——这就是“坏机器是常态”的设计前提。

它出现在这些中间件里

相关问题

相关概念