HDFS:Hadoop分布式文件系统
特性:1、可扩展,高性能,适用于特定类型的应用,不是通用的分布式文件系统。
2、HDFS针对高速流式读取,对随机查找性能差
3、支持写入、删除、追加和读取,不支持更新。它假定的应用场景是数据一次性写入HDFS,然后多次读取(访问模型)。
4、HDFS不提供本地数据缓存机制,每次读取都是从源文件读取,因为是大数据,所以如果设缓存机制的话,那么缓存的开销将特别大。
存储:1、HDFS被实现为一种块结构的文件系统。一个文件可以由多个块组成,这些块大小固定,存储在不同的DataNode。
2、每个块保存在哪个DataNode机器上是随机选取的,所以访问一个文件通常要访问多个DataNode(这样不仅支持很大的文件,而且可并行读取)。
3、DataNode在本地文件系统上以单独文件的形式保存各个HDFS数据块,并将其放在由启发式算法创建的目录下来,启发式算法主要是确定每个目录下最优文件数目,来创建子目录。
4、NameNode保存了整个集群文件系统的所有元数据(关于块的信息,仅包含文件名、访问权限、块的位置),元数据保存在内存中,方便访问,也持久化到NameNode本地文件系统中。
5、整个文件系统名称空间(包括到文件的映秀以及文件系统属性)包含在一个名为FsImage的文件中,该文件保存在NameNode的本地文件系统中。同时还用事务日志来持久化记录发生在文件系统元数据存储中的每一次改动,该日志保存在NameNode本地文件系统上的EditLog文件中。
6、为了解决单点故障(NameNode down机后HDFS失效),增加了从属NameNode(secondary NameNode)。