Hadoop Distributed File System,分布式文件系统html
Block数据&##x5757;网络
基本存储单位,通常大小为64M(配置大的块主要是由于:1)减小搜寻时间,通常硬盘传输速率比寻道时间要快,大的块能够减小寻道时间;2)减小管理块的数据开销,每一个块都须要在NameNode上有对应的记录;3)对数据块进行读写,减小创建网络的链接成本)架构
一个大文件会被拆分红一个个的块,而后存储于不一样的机器。若是一个文件少于Block大小,那么实际占用的空间为其文件的大小分布式
基本的读写S#x5355;位,相似于磁盘的页,每次都是读写一个块oop
NameNode线程
存储文件的metadata,运行时全部数据都保存到内存,整个HDFS可存储的文件数受限于NameNode的内存大小日志
一个Block在NameNode中对应一条记录(通常一个block占用150字节),若是是大量的小文件,会消耗大量内存。同时map task的数量是由splits来决定的,因此用MapReduce处理大量的小文件时,就会产生过多的map task,线程管理开销将会增长做业时间。处理大量小文件的速度远远小于处理同等大小的大文件的速度。所以Hadoop建议存储大文件htm
数据会定时保存到本地磁盘,但不保存block的位置信息,而是由DataNode注册时上报和运行时维护(NameNode中与DataNode相关的信息并不保存到NameNode的文件系统中,而是NameNode每次重启后,动态重建)blog
Secondary NameNode内存
DataNode
保存具体的block数据
负责数据的读写操做和复制操做
DataNode启动时会向NameNode报告当前存储的数据块信息,后续也会定时报告修改信息