HDFS 的设计理念是为了满足特定的大数据应用场景,所以 HDFS 具有一定的局限性,不能适用于所有的应用场景,HDFS 的局限主要有以下几点。
1) 实时性差要求低时间延迟的应用不适合在 HDFS 上运行,HDFS 是为高数据吞吐量应用而优化的,这可能会以高时间延迟为代价。
2) 小文件问题由于 NameNode 将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总量受限于 NameNode 的内存总容量。
根据经验,每个文件、目录和数据块的存储信息大约占 150 字节。过多的小文件存储会大量消耗 NameNode 的存储量。
3)文件修改问题HDFS 中的文件只有一个写入者,而且写操作总是将数据添加在文件的末尾。HDFS 不支持具有多个写入者的操作,也不支持在文件的任意位置进行修改。