HDFS包含:NameNode、SecondaryNameNode、DataNode
HDFS — Hadoop 分布式文件系统是世界上最可靠的存储系统,HDFS 文件系统被设计用于海量文件存储,其优点是存储大文件而不是大量的小文件;HDFS 容错存储层还提供对 Hadoop 和其它元件的支持,HDFS 的数据复制将帮助我们实现这一特征,它能可靠地存储数据,并且几乎不受硬件故障的影响;HDFS提供高吞吐量数据访问应用程序,提供数据的并行访问。
NameNode
NameNode是整个文件系统的管理节点,它主要维护着整个文件系统的文件目录树,文件/目录的元信息,每个文件对应的数据块列表,并且还负责接收用户的操作请求。NameNode 执行文件系统的 Namespace 操作 , 例如:打开、关闭、重命名文件和目录。NameNode应当部署在相对可靠的硬件环境中
。
NameNode主要包含以下文件(core-site.xml-hadoop.tmp.dir/dfs/name/current):
- fsimage(某一时刻NameNode元数据信息、快照)
- edits(用户操作记录)
- seen_txid(存储edits文件后的数字,NameNode重启时按存储的数字顺序恢复)
- VERSION(HDFS版本信息)
SecondaryNameNode
SecondaryNameNode主要负责定期把edits中的内容合并到fsimage
在NameNode的HA架构中是没有SecondaryNameNode进程的,文件合并操作由stanfby NameNode负责实现
DataNode
- DataNode提供真实文件数据的存储服务
- HDFS会按照固定的大小,顺序对文件进行划分并编码,划分好的每一块称一个Block,HDFS默认Block大小是128MB
- HDFS中,如果一个文件小于一个数据块的大小,那么并不会占用整个数据块的存储空间
HDFS 特征
- 分布式存储
- 块
- 复制
- 高可用性
- 数据可靠性
- 容错
- 可扩展性
- 高吞吐量程序访问