hadoop根据网络拓扑,将整个网络拓扑看成一棵树,树的每个节点代表集群中的每个机器(处理机或者路由器)
两个节点直接的距离等于两个节点距离其公共节点的距离之和
一般会把数据中心(center)、机架(rack)和节点(node)分别映射到不同的层次
以下每种情况的带宽是递减的:
- 同一节点中的两个程序
- 同一机架上的两个节点
- 同一数据中心的不同机架上的两个节点
- 不同数据中心的节点
如果将数据中心d1里的机架r1上的节点n1定义为/d1/r1/n1的话,那么将会有以下结果:
distance(/d1/r1/n1, /d1/r1/n1) = 0 (同一节点上的两个应用程序)
distance(/d1/r1/n1, /d1/r1/n2) = 2 (同一机架上的两个节点)
distance(/d1/r1/n1, /d1/r2/n3) = 4 (同一数据中心里不同机架上的两个节点)
distance(/d1/r1/n1, /d2/r3/n4) = 6 (不同数据中心的两个节点)