设计前提与目标
HDFS的设计前提与目标如下。
(1)硬件错误是常态而不是异常。HDFS被设计为运行在普通硬件上,所以硬件故障是很正常的。HDFS可能由成百上千的服务器构成,每个服务器上都存储着文件系统的部分数据,而HDFS的每个组件随时都有可能出现故障。因此,错误检测并快速自动恢复是HDFS的最核心设计目标。
(2)流式数据访问。运行在HDFS上的应用主要是以流式读为主,做批量处理;更注重数据访问的髙吞吐量。
(3)超大规模数据集。HDFS的一般企业级的文件大小可能都在TB级甚至PB级,支持大文件存储,而且提供整体上髙的数据传输带宽,一个单一的HDFS实例应该能支撐数以千万计的文件,并且能在一个集群里扩展到数百个节点。
(4)简单一致性模型。HDFS的应用程序一般对文件实行一次性写、多次读的访问模式。文件一旦创建、写入和关闭之后就不需要再更改了。这样就简化了数据一致性问题,髙吞吐量的数据访问才成为可能。
(5)移动计算比移动数据更简单。对于大文件来说,移动数据比移动计算的代价要高。操作海量数据时效果越加明显,这样可以提高系统的吞吐量和减少网络的拥塞。
(6)异构软硬件平台间的可移植性。这种特性便于HDFS作为大规模数据应用平台的推广。