浅析HDFS
0X00 HDFS的设计
HDFS作为GFS的开源实现,和GFS是高度一致的。在HDFS中有着下面的优点
- 对超大文件支持良好,由于其分布式实现,可以存储超大文件,甚至单个文件大小可以超过集群中任意一台机器的磁盘大小
- 采用流式数据访问,一次写入、多次读取是最高效的访问模式。因为Hadoop作为一个大数据处理平台,并没有频繁的写入操作,只是在需要的时候一次将大量的数据写入然后在对这些数据进行读操作
- Hadoop并不需要运行在昂贵且高可靠的硬件之上,单个节点可能性能可靠性都参差不齐,但是由于其高可靠性的设计,使之能在遇到节点故障时继续运行且不让用户察觉到明显的终端
但是HDFS也不是适用于各种场景,一下的几种场景就不适
- 低时间延迟的数据访问,因为HDFS是以时间延迟为代价针对高数据吞吐量优化的,所以HDFS不适用与低延迟的数据访问
- 大量的小文件,因为Namenode的设计是将文件系统的元数据存储在内存中的,所以理论上HDFS中的文件最大数量受限于Namenode的内存容量,因此大量的小文件会占用Namenode大量的内存
- HDFS目前不支持有多个写入者的操作,也不支持修改文件系统中的文件