Hadoop集群中两个节点之间的距离需要处理海量数据时,节点之间的数据传输能力就成为了最明显的限制因素——带宽是一种非常稀缺的资源。因此,使用两个节点之间的带宽作为他们之间距离的度量应该是一个非常棒的思路。
但是,想要度量出两个节点之间真实的带宽却非常难以实现。因为这需要集群中所有节点都直接相连,节点之间的网线连接数量将是节点数量的平方。因此,Hadoop采用了一个相对简单的近似方法,即使用两个节点之间的跳数来代表节点之间的距离。跳数就是两个节点之间的线缆的段数。Hadoop将整个集群理解为树形结构,树的每个节点代表集群中的每个机器(处理机或者路由器)。树的层次结构不是预先定义好的,但是一般会把数据中心(center)、机架(rack)和节点(node)分别映射到不同的层次。