大数据入门:HDFS数据副本存放策略
大数据处理当中,数据储存始终是一个重要的环节,从现阶段的市场现状来说,以Hadoop为首的大数据技术框架,仍然占据主流地位,而Hadoop的HDFS,在数据存储方面,仍然得到重用。今天的大数据入门分享,我们就来讲讲HDFS数据副本存放策略。
HDFS 是 Hadoop 分布式文件系统,基于廉价的PC集群,就能支持大规模数据集的存储,并且可以通过增加机器来提升存储容量,对于企业而言,提供了低成本的灵活性选择。
HDFS数据副本存放策略
通常来说,HDFS整体的副本冗余策略,是默认保存3个副本的策略。
大型 HDFS 实例通常分布运行在由许多机架组成的集群中,一个机房中有很多机架,一个机架上有多个服务器,不同机架的机器通信需要经过交换机,受带宽等因素的影响,需要更高的网络通信成本。
在默认 3 个副本的情况下,HDFS采用如下的放置策略:
在机架 1 上放置第一个副本;
在另一个机架 2 上放置第二副本;
副本三与副本二放置在同一个机架上;
如果有更多的副本,则随机选择机架,每个机架的副本数量有个上限值,计算方式通常是:(replicas - 1) / racks + 2
这样放置的好处:
避免一个机架出故障,导致所有数据丢失;
同一个机架上的节点通信网络会比不同机架节点通信更好,副本二与副本三放置在同一个机架能够节省带宽;
从单个文件看来,考虑带宽似乎没有多大意义,但是对于大规模数据的情况下,请求并发量大时,网络是非常重要的一个因素,特别是对于写请求,这里要了解 HDFS 写的流程。
因为写副本的过程类似于流水线,先写副本一,但这里写完后就将写成功的结果返回给客户端了。之后由副本一将内容写到副本二,接着由副本二将内容写到副本三。
假设副本三和副本一放置在一个机架上,那么就会产生两次不同机架间的写操作。而目前的情况是副本二和副本三在同一个机架,机架间的写操作只会发生在副本一到副本二之间,副本二和副本三的写操作是在同一个机架,节省了网络流量。
那么HDFS在读取时如何选择副本呢?
为了最大的减少带宽和延迟,HDFS 读取文件采用就近原则,如果与客户端在同一机架上的 DataNode 上存有副本,则直接读取该副本。如果 HDFS 是跨数据中心的,则优先选择同一数据中心的副本。
关于大数据入门,HDFS数据副本存放策略,以上就为大家做了简单的介绍了。HDFS的副本策略,很大程度上来说,保证了其存储的高可靠性,也为后续的数据处理环节,提供更加稳固的支持。