HDFS面试关键知识点解析

5星 · 超过95%的资源 6 下载量 139 浏览量 更新于2024-09-02 1 收藏 321KB PDF 举报
"Hadoop面试题总结,主要涵盖了HDFS的基础知识,包括Block的保存副本数、BlockSize、数据存储、SecondaryNameNode的作用以及文件大小设置的影响等。" 在Hadoop的分布式文件系统(HDFS)中,Block是数据存储的基本单位。以下是关于HDFS的一些关键知识点: 1. **Block默认副本数**:默认情况下,每个HDFS文件的Block都会保存3份,以提高容错性和数据可用性。这些副本分布在不同的DataNode上,以防止单点故障导致数据丢失。 2. **BlockSize**:HDFS的默认BlockSize不是固定不变的,它可以根据Hadoop版本有所不同。在较新的hadoop2.x版本中,默认值是128MB,而在较旧的hadoop1.x版本中,默认值为64MB。Block的大小可以通过配置参数`dfs.blocksize`进行调整。 3. **DataNode的角色**:DataNode是HDFS中实际存储数据的节点,它们负责接收来自NameNode的指令,存储和检索Block。 4. **SecondaryNameNode的作用**:SecondaryNameNode并非NameNode的备份,而是用来辅助NameNode管理元数据。它定期合并NameNode的Edit Logs,以减少NameNode重启时加载大量Edit Logs的时间,从而避免长时间的服务中断。 5. **文件大小与Block大小的关系**:HDFS文件是按Block进行分块存储的。增大文件块大小可以减少寻址时间,提高传输效率,但过大的块可能导致小文件的浪费,因为每个Block至少需要存储一个完整的文件。反之,块设置得太小会增加寻址开销,降低整体性能。 6. **HDFS的存储机制**:在写入数据时,客户端首先与NameNode交互确认文件和父目录是否存在,然后NameNode指示DataNodes接收数据。客户端建立一个到DataNodes的管道,依次将Block数据发送给每个DataNode。读取数据时,NameNode告诉客户端数据Block的位置,客户端直接从最近或最健康的DataNode读取。 7. **数据冗余和容错性**:HDFS的副本策略确保了即使某个DataNode出现故障,其他副本仍可提供服务。如果副本数量不足,NameNode会自动复制数据以恢复副本数。 理解这些核心概念对于理解和优化HDFS的性能至关重要,尤其是在进行大规模数据处理和分布式计算时。在面试中,对这些知识点的掌握程度通常被视为评估候选人技术能力的重要指标。