大数据之Hadoop核心之HDFS
Hadoop 软件有三大核心,HDFS、Yarn、MapReduce。这里我们来说第一个核心HDFS,HDFS全称 Hadoop Distributed File System 是Apache Hadoop项目的一个子项目,是一个分布式文件系统,Hadoop能够适合存储大数量的数据比如TB和PB,其实就是使用的HDFS。HDFS 使用多台计算机存储文件, 并且提供统一的访问接口, 像是访问一个普通文件系统一样使用分布式文件系统。 HDFS适用的场景 存储非常大的文件:这里非常大指的是几百M、G、或者TB级别,需要高吞吐量,对延时 没有要求 。 采用流式的数据访问方式: 即一次写入、多次读取,数据集经常从数据源生成或者拷贝一次,然后在其上做很多分析工作 。 运行于商业硬件上: Hadoop不需要特别贵的机器,可运行于普通廉价机器,可以处节约成本需要高容错性为数据存储提供所需的扩展能力 HDFS不适用的场景 低延时的数据访问 对延时要求在毫秒级别的应用,不适合采用HDFS。HDFS是为高吞吐数据传输设计的,因此可能牺牲延时 大量小文件 文件的元数据保存在NameNode的内存中, 整个文件系统的文件数量会受限于NameNode的内存大小。 经验而言,一个文件/目录/文件块一般占有150字节的元数据内存空间。如果有100万个文件,每个文件占用1个文件块