1.hdfs的一些概念:
- 典型的 Master/Slave 架构
- 分块存储(block机制)hadoop2.X默认是128M
- 命名空间(NameSpace)
HDFS 支持传统的层次型文件组织结构。用户或者应用程序可以创建目录然后将文件保存在这些目录里。文件系统名字空间的层次 结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。namenode负责维护文件系统的名字空间,任何对 文件系统名字空间或属性的修改都将被Namenode 记录下来。HDFS 提供给客户单一个抽象目录树,访问形式: hdfs://namenod 的 hostname:port/test/input
- NameNode元数据管理 我们把目录结构及文件分块位置信息叫做元数据。NameNode的元数据记录每一个文件所对应的block信息 (block的id,以及所在的DataNode节点的信息)
- DataNode数据存储 文件的的各个block的具体存储管理由DataNode节点承担,一个block会有多个dataNode节点保存,定时向 namenode汇报自己的block信息。
- 副本机制 为了容错,文件的所有 block 都会有副本。每个文件的 block 大小和副本系数都是可配置的。应用程序可以指定某个文件 的副本数目。副本系数可以在文件创建的时候指定,也可以在之后改变。副本数量默认是3个。
- 一次写入,多次读出 HDFS 是设计成适应一次写入,多次读出的场景,且不支持文件的随机修改。 (支持追加写入,不只支持随 机 更新)正因为如此,HDFS 适合用来做大数据分析的底层存储服务,并不适合用来做网盘等应用(修改不方便,延迟大,网络 开销大,成本太高)
2.hdfs架构:
- NameNode(nn):Hdfs集群的管理者,Master
- 维护管理Hdfs的名称空间(NameSpace)
- 维护副本策略
- 记录文件块(Block)的映射信息
- 负责处理客户端读写请求