Hadoop自带一个分布式文件系统——HDFS(Hadoop Distributed Filesystem),有时也简称DFS。
数据块
构建于单个磁盘的文件系统通过磁盘块来管理该文件系统的块,该文件系统块的大小可以是磁盘块的整数倍。文件系统块一般是几千字节,而磁盘块一般是512字节。HDFS的块(block)作为独立的存储单元默认是128MB,HDFS上的文件也被划分为多个分块(chunk)。与单一磁盘文件系统不同,HDFS小于一个块大小的文件不会占据整个块空间。
namenode和datanode
HDFS集群以一个管理节点(namenode)和多个工作节点(datanode)模式运行,namenode管理文件系统的命名空间,它维护着文件系统树及整颗树内所有的文件和目录。这些信息以两个文件形式永久保存在本地磁盘上:命名空间镜像文件和编辑日志文件。namenode也记录着每个文件中各个块所在数据节点信息,但它并不永久保存块的位置信息,因为这些信息会在系统启动时根据数据节点信息重建。datanode是HDFS的工作节点,用于存储和检索数据块,并定期向namenode发送所存储块的列表。
客户端(client)提供一个类似POSIX(可移植操作系统界面)的文件系统接口,用户访问HDFS时无需感知namenode和datanode。