Hadoop网络拓扑的距离计算方法

在Hadoop集群中两个节点之间的距离是如何定义的呢?如何判断两个节点是否“邻近”?当需要处理海量数据时,节点之间的数据传输能力就成为了最明显的限制因素——带宽是一种非常稀缺的资源。因此,使用两个节点之间的带宽作为他们之间距离的度量应该是一个非常棒的思路。

但是,想要度量出两个节点之间真实的带宽却非常难以实现。因为这需要集群中所有节点都直接相连,节点之间的网线连接数量将是节点数量的平方。因此,Hadoop采用了一个相对简单的近似方法,即使用两个节点之间的跳数来代表节点之间的距离。跳数就是两个节点之间的线缆的段数。Hadoop将整个集群理解为树形结构,树的每个节点代表集群中的每个机器(处理机或者路由器)。树的层次结构不是预先定义好的,但是一般会把数据中心(center)、机架(rack)和节点(node)分别映射到不同的层次。在这种设计中,以下每种情况的带宽是递减的:

  1. 同一节点中的两个程序
  2. 同一机架上的两个节点
  3. 同一数据中心的不同机架上的两个节点
  4. 不同数据中心的节点

如果将数据中心d1里的机架r1上的节点n1定义为/d1/r1/n1的话,那么将会有以下结果:

  1. distance(/d1/r1/n1, /d1/r1/n1) = 0 (同一节点上的两个应用程序)
  2. distance(/d1/r1/n1, /d1/r1/n2) = 2 (同一机架上的两个节点)
  3. distance(/d1/r1/n1, /d1/r2/n3) = 4 (同一数据中心里不同机架上的两个节点)
  4. distance(/d1/r1/n1, /d2/r3/n4) = 6 (不同数据中心的两个节点)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值