我无法理解节点之间的距离是如何变成0、2、4、6的。
谁能解释一下吗。
根据权威指南,
例如,假设数据中心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
(不同数据中心的节点)。
• distance(/d1/r1/n1, /d2/r3/n10) = ?
hadoop中的网络距离
2条答案
按热度按时间mefy6pfw1#
让我们将您的集群想象成一棵树,具有以下级别:
抽象全局根(顶部或根)
数据中心(一级)
机架(第二层)
节点(第三层或叶)
如果我们画这棵树应该是这样的:
让我们将任意圆与其父圆之间的距离计算为1。
那么任意两个圆之间的距离就是它们到最近的共同祖先的距离之和,或者对于同一个节点为0。
因此,对于不同数据中心中的任意两个节点(比如/d1/r1/n1和/d2/r4/n10之间),它总是6。
daupos2t2#
“两个节点之间的距离是它们到最近的共同祖先的距离之和”(hadoop:the definitive guide 4th ed,第70页)
距离(/d1/r1/n1,/d2/r3/n10)=6
两个节点之间的共同祖先是/
所以从n1到/的距离是3
从n10到/的距离是3
总共是6个