HDFS=Hadoop Distributed File System(Hadoop分布式文件系统)
硬件故障

HDFS由数百上千个服务器机器组成,每台机器都存储数据的一部分,每个组件都有可能失效,所以HDFS的某些组件始终是分功能性的。所以,故障检测和快速自动恢复是HDFS的核心架构目标。

流式访问数据

运行在HDFS上的程序访问数据集是采用流访问。HDFS并不是运行在通用文件系统上的应用程序,HDFS更多的是为批处理而设计的,而不是用户交互使用。重点是数据访问的高吞吐量不是数据访问的低延迟。可移植性的操作系统接口降低了HDFS的应用程序的硬需求。

大数据集

HDFS拥有大型数据集,HDFS的典型文件是GB到TB,因此,HDFS被调优为支持大文件,所以HDFS不适合存储小文件(每一个NN存储的块信息是以150B为位,大文件是150B,小文件是150B)。

简单的一致性

HDFS采用的是文件一次写出多次读取。当文件写入完成,出了追加和街区,不能进行修改,支持将内容附加到文件末尾,但是不能在指定位置进行更新,简化了数据一致性问题,并支持高吞吐量数据访问。

移动计算比移动数据便宜

如果应用程序的计算在其操作的数据附近执行,那么它的效率会高很多,当数据集的很大时更加明显,这个模式将最小化网络堵塞,并提高系统的整体吞吐量。(将计算迁移到离数据更近的地方通常比将数据迁移到应用程序运行的地方要好)HDFS为应用程序提供了接口,是它们更接近数据所在的地方。

异构硬件和软件平台的可以移植性

HDFS基于的是跨平台语言java,所以HDFS被设计成易于平台间的移植。

集群中单个NN极大简化了系统体系结构。NN是所有HDFS元数据的仲裁器和存储库。该系统的设计方式是:用户数据永远不流经NN。
NN存储什么? 参考资料

答:1)目录树(整个文件系统的目录)->持久化到FsImage
2)文件名与blockid的映射关系 ->持久化到FsImage
3)blockid所在的DN信息(NN启动时,DN汇报给NN,并加载到NN内存中)