当每个文件写入群集时,HDFS将创建一个复制管道。假设有两个机架1和5.根据机架感知,第一个块将保存到机架1中,其他两个复制块将被推入机架5中。
我很困惑为什么hadoop管道会将第二个和第三个复制块存储在同一个机架(5)中而不是将第一个和第二个块存储在同一个机架(1)中?这两种方案都具有相同的网络流量。它有什么优势?
感谢。
请参阅此图http://bradhedlund.s3.amazonaws.com/2011/hadoop-network-intro/HDFS-Pipleline-Write-s.png
答案 0 :(得分:0)
这适用于HDFS 1.2将两个块放在远程机架上的原因是为了最小化机架间流量。由于第二个块已经在远程机架上,因此在远程机架上的两个服务器之间复制块将不会消耗机架之间链路的带宽。如果高效设计的机架式交换机顶部将带宽利用率降至最低。在繁忙的群集上,两个机架上都会发生相同的过程。机架A和机架B将以大致相同的速率生成块。因此,遵循此策略有助于均衡所有链路的带宽利用率。