【摘要】:HDFS 的局限性主要表现在以下几个方面:1)不适合低延迟数据访问HDFS 设计之初的目的是能够处理大型数据集并进行分析工作,这就要求它具有很高的数据吞吐量。3)不支持多用户的并行写入和文件修改目前对于上传到HDFS 上的文件,不支持文件修改操作。HDFS 适用于一次写入多次读取的情况,使用HDFS 操作文件时,该文件不允许多线程同时写入,这样会导致文件的同步性问题。
HDFS 虽然有着大数据处理、流式数据访问、高容错性、检测和快速应对硬件故障等优势,但是,现在的HDFS 在处理某些特定问题时不但没有优势,反而会存在一定的局限性,因此,了解HDFS 的优势和劣势对以后使用HDFS 解决特定问题很有帮助。HDFS 的局限性主要表现在以下几个方面:
1)不适合低延迟数据访问
HDFS 设计之初的目的是能够处理大型数据集并进行分析工作,这就要求它具有很高的数据吞吐量。HDFS 不适合处理一些用户要求低延迟性的应用请求,这是由于HDFS 针对高数据吞吐量做了优化,这是以牺牲获取数据时延为代价的。对于低延迟的访问需求,HBase 是更好的选择。
2)不适合大量的小文件存储
在分布式存储系统中,NameNode 可以视为系统的主节点。它用来维护文件系统树和系统中所有文件和目录的元数据(Metadata),因此,该文件系统所能存储的文件数量的大小受限于NameNode 的内存容量。例如:每个文件、目录和数据块的存储信息大约占150 B。如果有一百万个小文件,每个小文件都会占一个数据块,至少需要300 MB 内存。如果是上亿级别的,就会远远超出当前硬件的能力。(www.xing528.com)
3)不支持多用户的并行写入和文件修改
目前对于上传到HDFS 上的文件,不支持文件修改操作。虽然Hadoop 2.0 支持文件的末尾增加功能,但是还是不建议对HDFS 上的文件进行修改,因为效率低下。
HDFS 适用于一次写入多次读取的情况,使用HDFS 操作文件时,该文件不允许多线程同时写入,这样会导致文件的同步性问题。因此,在同一时间内,只能有一个用户执行写操作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。