HDFS
一、HDFS的构成
元数据:目录结构和块的位置信息
元数据存放在内存中,默认情况下,每个文件的元数据大概有150B字节
- NameNode:负责管理元数据
- DataNode:负责存储实际数据
- SecondaryNameNode:辅助NameNode对元数据的管理
1、NameNode概述(了解)
- 是HDFS的核心,也被称为Master
- 仅存储HDFS的元数据:目录结构和文件的块列表及其位置信息
- 不存储实际数据或数据集。数据本身实际存储在DataNodes中
- 知道HDFS中任何给定文件的块列表及其位置。使用此信息NameNode知道如何从块中构建文件
- 并不持久化存储每个文件中各个块所在的DataNode的位置信息,这些信息会在系统启动时从数据节点重建
- 对于HDFS至关重要,当NameNode关闭时,HDFS / Hadoop集群无法访问
- 是Hadoop集群中的单点故障
- 所在机器通常会配置有大量内存(RAM)
2、DataNode概述(了解)
- 负责将实际数据存储在HDFS中,也被称为Slave
- 启动时,它将自己发布到NameNode并汇报自己负责持有的块列表
- 因为实际数据存储在DataNode中,所以其机器通常配置有大量的硬盘空间
- 会定期(dfs.heartbeat.interval配置项配置,默认是3秒)向NameNode发送心跳,如果NameNode长时间没有接受到DataNode发送的心跳, NameNode就会认为该DataNode失效(10分钟 + 30s)
- block(块)汇报时间间隔取参数dfs.blockreport.intervalMsec,参数未配置的话默认为6小时