HDFS副本放置策略

HDFS默认数据放置策略

系统默认为每一个数据块存放3个副本,按照布署在NameNode上的默认机架感知策略存放数据块副本。其中:

第一个block副本放在client结点所在机架的datanode里(如果client不在集群范围内,则这第一个node是随机选取的,当然系统会尝试不选择哪些太满或者太忙的node)。 

第二个block副本放置在与第一个datanode节点相同的机架中的另一个datanode中(随机选择)。  

第三个block副本放置于另一个随机远端机架的一个随机datanode中。 

如果还有更多的副本就随机放在集群的node里。 

将第一、二个block副本放置在同一个机架中,当用户发起数据读取请求时可以较快地读取,从而保证数据具有较好的本地性。

第三个及更多的block副本放置于其他机架,当整个本地结点都失效时,HDFS将自动通过远端机架上的数据副本将数据副本的娄得恢复到标准数据。

Hadoop的副本放置策略在可靠性(block在不同的机架)和带宽(一个管道只需要穿越一个网络节点)中做了一个很好的平衡。下图是备份参数是3的情况下一个管道的三个datanode的分布情况。

 

 

posted @ 2013-05-14 11:11  spark woo  阅读(2286)  评论(0编辑  收藏  举报