当每个文件写入群集时,HDFS将创建一个复制管道。假设有两个机架1和5,根据机架感知,第一个块将保存到机架1中,其他两个复制的块将推送到机架5中。
我非常困惑为什么hadoop管道会将第二个和第三个复制的块存储在同一个机架(5)中,而不是将第一个和第二个块存储在同一个机架(1)中?这两个场景具有相同的网络流量。它的优势是什么?
谢谢。
请参考此图http://bradhedlund.s3.amazonaws.com/2011/hadoop-network-intro/HDFS-Pipleline-Write-s.png
发布于 2014-05-10 21:43:30
这适用于HDFS 1.2,将两个数据块都放在远程机架上的原因是最大限度地减少机架间流量。由于第二个数据块已位于远程机架上,因此在远程机架上的两台服务器之间复制数据块不会占用机架之间链路的带宽。如果对机架顶部交换机进行高效设计,这将使带宽利用率降至最低。在繁忙的群集上,相同的过程将在两个机架上发生。其中机架A和机架B将以大致相同的速率生成数据块。因此,遵循此策略有助于平衡所有链路的带宽利用率。
https://stackoverflow.com/questions/23581749
复制相似问题