HDFS概述
它的设计目标是把超大数据集存储到分布在网络中的多台普通商用计算机上,并且能够提供高可靠性和高吞吐量的服务。分布式文件系统要比普通磁盘文件系统复杂,因为它要引入网络编程,分布式文件系统要容忍节点故障也是一个很大的挑战。HDFS最初是作为Apache Nutch Web搜索引擎项目的基础架构构建的。HDFS是Apache Hadoop Core项目的一部分。http://hadoop.apache.org/
HDFS的设计目标
硬件错误检测和快速、自动恢复
流式数据的高吞吐量访问
大规模数据集
支持简单的数据一致性
可移植性
容错性
不适合场景
- 大量小文件
- 低延迟数据访问
- 多用户访问,任意修改文件
HDFS框架
HDFS主要由2个组件构成,分别是NameNode,SecondaryNode和DataNode,HDFS是以master/slave的模式运行,其中NameNode,Secondory运行在master节点,DataNode运行在slave节点
- block(数据块)
数据块是磁盘读写的基本单位。
NameNode
NameNode 是主节点,存储文件的元数据,如文件名,文件目录结构,文件属性以及块所在的DataNode和文件的块列表
DataNode
本地文件系统的存储文件块数据,以及块数据的校验和以及数据损坏处理。
SecondaryNameNode
辅助NAmeNode工作和监控HDFS状态的辅助后台程序 ,间隔的获取HDFS的数据快照.
存储方式
- 内存
- 本地磁盘
- fsimage:镜像文件
- edites:镜像日志