hadoop中的机架拓扑

ivqmmu1c  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(493)

我在谷歌上搜索机架拓扑,发现了这个问题…可能是hadoop认证问题:
您的集群在三个不同的机架中有从属节点,并且您已经编写了一个机架拓扑脚本,将每台机器标识为位于机架1、机架2或机架3中。集群之外的客户机将一个小的(一个块)文件写入hdfs。块的第一个副本被写入rack2上的节点。如何确定其他两个复制副本的块位置?
一些站点的答案是要么两者都将写入rack1上的节点,要么两者都将写入rack3上的节点。
为什么不把下一个块写在rack2本身上,把剩下的块写在rack1或rack3上呢?

ggazkfy8

ggazkfy81#

如果客户机位于机架外部,则它写入的第一个复制将被视为本地节点。
根据文档,hadoop将副本放置在3个不同的数据节点中:
本地数据节点:客户端启动写操作的数据节点(例如,使用hadoopfs-cp命令)。第一个复制品放在这里。如果客户机正在从集群外部写入数据,则随机选择此节点。它是写入第一个复制副本的节点。
非机架数据节点:存在于另一机架上的数据节点。第二个复制品放在这里。
机架上数据节点:与第一个数据节点物理上位于同一机架上的数据节点。第三个复制品放在这里
因此,在您的情况下,当第一个副本写入机架2中时,它将是本地数据节点。机架1/机架3中的第二个副本[机架外数据节点]。第三个副本再次出现在机架2中[机架上数据节点]。

相关问题