1、HDFS概述
1.1、介绍
在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。
HDFS(Hadoop Distributed File System)是Apache Hadoop项目的一个子项目。Hadoop非常适用于存储大型数据(比如TB和PB),其就是使用HDFS作为存储系统,HDFS使用多台计算机存储文件,并且提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统。
2、HDFS的应用场景
2.1、适合应用的场景
(1)存储非常大的文件:这里非常大指的是几百M、G、或TB级别,需要高吞吐量,对延时没有要求。
(2)采用流式的数据访问方式:即一次写入,多次读取,数据集经常从数据源生成或者拷贝一次,然后在其上做很多分析工作。
(3)运行于商业硬件上:Hadoop不需要特别贵的机器,可运行于普通廉价机器,可以节约成本。
(4)需要高容错性。
(5)为数据存储提供所需的扩展能力。
2.2、不适合应用的场景
(1)低延时的数据访问,对延时要求在毫秒级别的应用,不适合采用HDFS,HDFS是为高吞吐数据传输设计的,因此可能牺牲延迟。
(2)大量小文件,文件的元数据保存在namenode的内存中,整个文件系统的文件数量会受限于namenode的内存大小。经验而言,一个文件/目录/文件块一般占有150字节的元数据内存空间。如果有100万个文件,每个文件占用一个文件快,则需要大约300M的内存。因此十亿级别的文件数量在现有商用机器上难以支持。
(3)多方读写,需要任意的文件修改 HDFS采用追加(append-only)的方式写入数据。不支持文件任意offset的修改。不支持多个写入器。
上述仅为本人学习记录,有错误请大家指出,希望一起学习一起记录一起进步