云计算分布式框架 Hadoop

107课时
2.2K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
5分钟

副本的存放

副本的存放是HDFS可靠性和性能的关键。优化的副本存放策略是HDFS区分于其他大部分分布式文件系统的重要特性。HDFS采用一种机架感知(rack-aware)的策略用来来改进HDFS的数据的可靠性、可用性和网络带宽的利用率。目前的副本存放采用机架刚感知策略的是第一步,为实现更先进的策略打下测试和研究的基础。

大型的HDFS分布式文件系统一般运行在跨越多个机架的计算机集群上,处在不同机架上的两台机器之间的通讯需要经过交换机。同一个机架内的两台机器间的带快要比处于不同机架的两台机器间的带宽要大。

一个机架感知的过程就是NameNode可以确定每个DataNode所属的机架id。一个简单但没有优化的策略就是将副本存放在不同的机架上,这样可以有效防止当整个机架失效时数据的丢失,并且允许读数据的时候充分利用多个机架的带宽。这种策略就是可以将副本均匀分布在集群中,有利于负载均衡,但是这个策略也有缺点,一个写操作需要把数据传输到多个机架,这样也增加了写的代价。

在大多数情况下,数据块的副本系数是3,HDFS的存放策略是将一个副本存放在本地机架的节点上,一个副本放在同一机架的另一个节点上,最后一个副本放在不同机架的节点上。这种策略减少了机架间的数据传输,这就提高了写操作的效率。机架的错误远远比节点的错误少,所以这个策略不会影响到数据的可靠性和可用性。于此同时,因为数据块只放在两个(不是三个)不同的机架上,所以此策略减少了读取数据时需要的网络传输总带宽。在这种策略下,副本并不是均匀分布在不同的机架上。三分之一的副本在一个节点上,三分之二的副本在一个机架上,其他副本均匀分布在剩下的机架中,这一策略在不损害数据可靠性和读取性能的情况下改进了写的性能。