机架拓扑

问题描述:

我对谷歌搜索机架拓扑发现这个问题...可能是它的Hadoop认证问题:机架拓扑

你的集群有从属节点在三个不同的机架,你写了一个机架拓扑识别脚本每台机器位于机架1,机架2或机架3中。群集外部的客户机将一个小块(单块)文件写入HDFS。块的第一个副本被写入机架2上的节点。如何确定其他两个副本的块放置?

某些站点的答案是两者都将写入rack1上的节点,或者两者都将写入rack3上的节点。

为什么不在机架2本身和机架1或机架3上的剩余块写入下一个块?

如果客户端位于机架之外,则它写入的第一个复制被视为本地节点。

从文档,Hadoop的放置在3个不同的数据节点的复制品:

本地数据节点:数据节点,其中所述客户端发起的写(对于例如使用Hadoop FS -cp命令)。第一个复制品放在这里。如果客户端正在从集群外部写入数据,则随机选择此节点。它是写入第一个副本的节点。

机架外数据节点:数据节点出现在另一个机架上。第二个副本放在这里。

机架上数据节点:与第一个数据节点实际位于同一机架上的数据节点。第三个副本放在这里

因此,就你的情况而言,由于第一副本是写入机架2,它将是本地数据节点。机架1 /机架3 [机架外数据节点]中的第二个副本。然后在机架2 [机架上数据节点]上重新打开第三个副本。