HDFS定义
Hadoop Distributed File System,是一个使用 Java 实现的、分布式的、可横向扩展的文件系
统,是 HADOOP 的核心组件
HDFS特点
- 处理超大文件
- 流式地访问数据
- 运行于廉价的商用机器集群上;
HDFS 不适合以下场合: - 低延迟数据访问
- 大量小文件的存储
- 不支持多用户写入及任意修改文件
HDFS基本结构
HDFS相关概念 --块
- HDFS使用了块的概念,默认大小128M/256M字节
- 可针对每个文件配置,由客户端指定
- 每个块有一个自己的全局ID
- HDFS将一个文件分为一个或数个块来存储
- 每个块是一个独立的存储单位
- 以块为单位在集群服务器上分配存储
- 与传统文件系统不同的是,如果实际数据没有达到块大小,则并不实际占用整个块磁盘空间
- 如果一个文件是200M,则它会被分为2个块: 128+72
HDFS相关概念 --元数据
- 元数据 (MetaData)包括
文件系统目录树信息
- 文件名,目录名
- 文件和目录的从属关系
- 文件和目录的大小,创建及最后访问时间
- 权限
文件和块的对应关系
- 文件由哪些块组成
块的存放位置
- 机器名,块ID
- HDFS对元数据和实际数据采取分别存储的方法
- 元数据存储在NameNode服务器上;
- 实际数据储存在集群的DataNode中
HDFS相关概念 --NameNode
NameNode是用来管理文件系统命名空间的组件。一个HDFS集群只有一台(active)NameNode
- NameNode上存放了HDFS的元数据,记录了每个文件中各个块所在的数据节点的位置信息。一个HDFS集群只有一份元数据,可能有单点故障问题
- 元数据工作时在NameNode内存中,以便快速查询。1G内存大致可存放1,000,000块对应的元数据信息。按缺省每块64M计算,大致对应64T实际数据
- 集群关闭时,元数据持久化到磁盘中,启动集群时,需要将元数据装载到内存中
NameNode数据结构
- NameNode负责管理分布式文件系统的Na