HDFS的机架感知(Rack Awareness)是Hadoop分布式文件系统(HDFS)中一个非常核心的机制。简单来说,它就是让HDFS的NameNode“知道”集群中各个DataNode(数据节点)所处的物理机架(Rack)位置,从而在存放数据副本和读取数据时做出最优的决策。 如果没有机架感知,HDFS会默认所有节点都在同一个机架上()。 --- 1. 为什么需要机架感知?(核心目的) 机架感知的引入主要是为了在数据可靠性(容错)和网络性能(读写效率)之间找到最佳平衡。 防范机架/交换机单点故障: 通常一个物理机架上的所有服务器共享一个顶层交换机(Top of Rack switch, ToR)和一个电源。如果机架断电或交换机坏了,整个机架的节点都会失联。如果所有数据副本都在同一个机架上,数据就会暂时或永久丢失。 优化网络带宽: 同机架内的节点间通信(经过一个交换机)速度快,带宽充足。 跨机架的节点间通信(需要经过机架交换机 -> 核心交换机 -> 目标机架交换机)速度相对较慢,且占用宝贵的核心网络带宽。 机架感知可以尽量减少跨机架的非必要数据传输。 --- 2. HDFS ...