HDFS 框架
HDFS(Hadoop Distributed File System)是 Hadoop 的分布式存储系统,设计目的是处理海量数据,确保数据存储的高可靠性和高可用性。其核心结构主要包括 NameNode、DataNode、Secondary NameNode 和 HDFS Client。
- NameNode:HDFS 的大脑,负责管理文件系统的元数据,包括文件路径、权限、块的位置等。它不直接存储数据,而是记录每个文件对应的块的位置。
- DataNode:HDFS 的存储单元,负责实际的数据存储。HDFS 将文件分成多个块(Block),分散存储在不同的 DataNode 上。每个 DataNode 定期向 NameNode 汇报存储信息,保证系统健康。
- Secondary NameNode:并非 NameNode 的备份,作用类似'清理工'。它定期将 NameNode 的元数据进行合并,防止元数据文件过大影响性能,确保 NameNode 运行高效。
- HDFS Client:与 HDFS 集群交互的客户端,通过 API 执行文件操作。上传下载时,Client 先向 NameNode 查询位置,再直接与 DataNode 通信完成读写。
YARN 框架
YARN(Yet Another Resource Negotiator)是 Hadoop 的资源管理系统,主要负责调度和管理集群中的计算资源。核心组件包括 ResourceManager、NodeManager、Client 和 ApplicationMaster。
- ResourceManager:YARN 的中央调度器,负责管理集群中所有计算资源。监控节点资源状况,根据作业需求分配资源。
- NodeManager:集群中每个节点的资源管理器,负责管理该节点资源并执行具体任务。当 ResourceManager 分配资源后,NodeManager 启动任务并监控执行情况。
- Client:提交作业的客户端程序。通常是用户应用程序,负责向 ResourceManager 提交任务请求,并等待资源分配。
- ApplicationMaster:每个作业的管理者,负责管理整个作业生命周期,包括任务调度、资源申请和执行。根据 ResourceManager 分配的资源,向 NodeManager 请求执行任务并跟踪进度。
HDFS 与 YARN 的对比
HDFS 和 YARN 都是 Hadoop 的重要组成部分,但侧重点和功能不同。
- 数据管理 vs 资源管理:HDFS 专注于数据存储与管理,确保数据高效、安全地存储在分布式环境中;YARN 专注于资源调度与任务管理,确保作业高效使用集群资源。
- 核心组件:HDFS 核心组件为 NameNode、DataNode 和 Secondary NameNode,负责文件系统管理和数据存储;YARN 核心组件为 ResourceManager、NodeManager、Client 和 ApplicationMaster,负责计算资源分配与作业执行。
- 容错机制:HDFS 提供副本机制保证数据高可靠性,如一个数据块有多个副本存储在不同 DataNode 上;YARN 的容错机制体现在任务调度上,节点故障时会重新调度任务。
总结
HDFS 作为存储系统,负责数据的分布式存储和管理,确保数据高可用性;YARN 作为资源管理系统,负责调度和管理集群资源,确保作业高效执行。两者合作,共同构成大数据处理平台的核心。HDFS 提供坚实的数据存储基础,YARN 提供高效的资源调度和任务执行平台。

