请阐述HDFS的主要构成模块,并分别说明每个模块在系统中的功能定位。
考察说明
考查对HDFS架构基础组件的理解及其职责划分。
回答思路
- 【回答框架 1】HDFS采用主从架构,核心组件包括NameNode、DataNode和SecondaryNameNode。NameNode是主节点,负责管理文件系统的命名空间,维护元数据(如文件目录结构、文件块映射),并处理客户端的读写请求。
- 【回答框架 2】DataNode是从节点,负责实际存储数据块,定期向NameNode发送心跳和块报告,执行数据块的创建、复制和删除操作。每个数据块默认有3个副本,分布在不同的机架上以保证容错。
- 【回答框架 3】SecondaryNameNode并非NameNode的热备,其主要职责是定期合并编辑日志(EditLog)和镜像文件(FsImage),减轻NameNode启动时的压力,并辅助恢复元数据。
- 【回答框架 4】客户端通过NameNode获取元数据信息,再直接与DataNode进行数据读写,实现数据流与控制流分离,提高吞吐量。
- 【关键点 1】NameNode管理元数据,不存储实际数据。
- 【关键点 2】DataNode存储数据块,通过心跳汇报状态。
- 【关键点 3】SecondaryNameNode定期合并EditLog和FsImage,辅助恢复。
- 【关键点 4】读写时数据流经DataNode,控制流经NameNode。
- 【易错点 1】误认为SecondaryNameNode是NameNode的热备,其实它不能自动故障切换。
- 【易错点 2】混淆NameNode和DataNode的职责,导致元数据与数据存储关系不清。