Hadoop入门指南:理解HDFS读写原理与Namenode/Datanode角色

需积分: 7 1 下载量 173 浏览量 更新于2024-09-07 收藏 463KB DOCX 举报
Hadoop笔记主要涵盖了Hadoop分布式文件系统(HDFS)的底层原理、操作流程以及NameNode和DataNode的角色。以下是详细的知识点概述: 1. HDFS读写过程: - 写数据流程: - 客户端通过`hdfs dfs-put`命令发起文件上传请求。 - Namenode负责检查目录结构,确认文件路径的有效性,并记录操作日志。 - 客户端请求第一个数据块的存储位置,Namenode根据可用Datanode列表分配存储。 - 数据块通过多路复用(pipeline)的方式进行流式复制,先写入缓存,然后逐步传输到各个Datanode,使用响应队列确保数据完整。 - 完成所有数据块的上传后,Namenode更新元数据。 - 读数据流程: - 客户端发起RPC请求,Namenode验证文件存在并提供元数据(包括block ID和Datanode列表)。 - 客户端选择最近的Datanode请求数据块,检查数据完整性后读取。 - Datanode与客户端建立连接,传输数据块,客户端缓存并写入本地文件。 - 重复此过程,直至整个文件合并完成。 2. Namenode职责: - 负责客户端请求的响应,包括文件操作权限检查和元数据管理。 - 维护整个系统的目录树结构和文件块信息。 3. DataNode职责: - 存储用户文件的数据块,并确保数据的持久化。 - 定期通过心跳信息向Namenode报告自身的块信息,保持一致性。 4. Checkpoint(Secondary NameNode角色): - Secondary NameNode作为辅助服务,参与Namenode的元数据一致性维护。 - 当Primary Namenode繁忙或发生故障时,Secondary NameNode接管备份任务,包括执行checkpoint(定期将当前编辑日志刷入磁盘),并协助主节点切换。 通过这些核心概念,Hadoop的学习者可以理解HDFS的高效存储和访问机制,以及NameNode和DataNode在数据处理中的分工合作。这对于初学者来说是基础且实用的知识,对日常工作中的数据处理和分布式系统设计具有重要参考价值。