Hadoop Distributed File System(简称HDFS)是Hadoop分布式文件系统。
HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。
Ø HDFS体系结构(***理解****)
l NameNode:名字节点
u NameNode是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。
u 文件包括:hdfs-site.xml的dfs.name.dir属性
² fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。
² edits:操作日志文件。
² fstime:保存最近一次checkpoint的时间
u 以上这些文件是保存在linux的文件系统中。
l DataNode:数据节点
DateNode提供真实文件数据的存储服务。
说明:DataNode是文件系统的工作节点,他们根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表。
n 文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。HDFS默认Block大小是128MB,以一个256MB文件,共有256/128=2个Block.
可以在配置里指定dfs.block.size属性的大小.
n 不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间
n Replication。多复本。默认是三个。
hdfs-site.xml的dfs.replication属性。
l Secondary NameNode:HA的一个解决方案。
n Secondary NameNode有两个作用:
一是镜像备份
二是日志与镜像的定期合并