一、数据块的冗余
为了保证系统的容错性和可用性,hdfs采用了多副本方式对数据块进行冗余存储,也就是一个数据块的多个副本会被分布到不同的Datanode上,存储在Datanode的本地文件系统中。
这种多副本的存储方式有以下优点:
1)加快数据传输速度。当多个客户端需要同时访问同一个文件时,这些客户端可以从不同的数据块副本中读取数据,大大提高了数据的传输速度。
2)容易检查数据错误。HDFS的Datanode之间通过网络传输数据,采用多副本可以很容易判断数据传输是否出错。
3)保证数据的可靠性。即使某个Datanode出现了故障,也不会造成数据丢失。
二、数据的存取策略
数据存取策略包括数据存放、数据读取和数据复制等方面,在很大程度上影响了整个HDFS的读写性能,是HDFS的核心内容。
1、数据存放
为了提高数据的可靠性和系统的可用性,和充分利用网络带宽,HDFS采用了以机架(Rack)为基础的存放策略
一个集群通常包含多个机架(Rack),不同的机架之间的数据通信需要经过交换机或者路由器,同一个机架中不同及其之间的通信则不需要经过交换机和路由器,这意味着同一个机架中不同机器之间的通信要比机架之间机器的通信带宽要大得多。
第一个副本的位置:客户端在集群之外的情况,就会随机选择一个机架和此机架上的随机一个节点进行存储。
第二个副本的位置:选择与第一个副