HDFS是构建在PC硬件之上的分布式文件系统,非常适合需要访问海量数据的应用。它和现有的分布式系统最大的区别是:高容错性和低成本。HDFS主要为了实现以下目标:
1) 硬件错误
一个典型HDFS可能包括成白上千台机器,每台机器存储一部分的数据。每台机器都有出错的可能,导致HDFS总会有些机器处于不工作的状态。因此检测失败和快速恢复数据是HDFS的核心架构目标。
2) 流数据访问
在HDFS上运行的应用需要流式顺序访问他们的数据,不适合那种随机访问数据的模式,这样做可以提供非常高效的数据访问速度。
3) 海量数据
在HDFS上的应用都会有自己的海量数据。HDFS上的文件大小一般都会是G字节级别。因此,HDFS更适合支持大文件,而且支持千万个数据文件。
4) 简单一致性模型
HDFS只支持一次写,多次读的文件访问模式。一个文件一旦创建,写,关闭之后就不能再改变。 MapReduce和网络爬虫等大部分互联网应用都符合这个模型。
5) 移动计算比移动数据要容易
如果数据和计算在一台机器上,可以省去了网络IO时间,这样计算效率更高。HDFS提供了接口查询数据在集群中的分布情况,这样应用可以就近分布计算单元。
6) 提供类似Linux的命名空间
用户可以创建目录,在目录里存储文件。文件组织结构和linux非常类似。你可以创建,删除,移动,重命名文件或者目录。