hadoop中HDFS框架、YARN框架各组件职责与对比

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 的"清理"和"整理",确保 NameNode 的运行更加高效。

  • HDFS Client 是与 HDFS 集群交互的客户端,它通过 HDFS 提供的 API 来执行各种文件操作。比如上传、下载文件时,HDFS Client 会先向 NameNode 查询文件的存储位置,再直接与 DataNode 通信完成数据的读写。它就像是你去借书时,先找管理员获取书籍信息,然后到书架上取书。

YARN框架

YARN(Yet Another Resource Negotiator)是 Hadoop 的资源管理系统,主要负责调度和管理集群中的计算资源。它的核心组件包括 ResourceManager、NodeManager、Client 和 ApplicationMaster。让我们逐个了解它们的作用。

  • ResourceManager 是 YARN 的中央调度器,负责管理集群中所有的计算资源。它监控集群中各个节点的资源状况,并根据作业的需求分配资源。可以把它看作是一个调度中心,决定哪些任务能得到哪些计算资源。你想要做一个项目,ResourceManager 就像是分配工作的人,决定你能用多少资源。

  • NodeManager 是集群中每个节点的资源管理器,它负责管理该节点的资源,并执行具体的任务。当 ResourceManager 分配资源后,NodeManager 负责在本节点上启动任务并监控其执行情况。可以理解为它是现场的经理,负责确保任务在本地按时完成。

  • Client 是提交作业的客户端程序。通常是用户的应用程序,它负责向 ResourceManager 提交任务请求,并等待资源分配。Client 可以理解为提交工作的人员,它发起任务请求并等待资源调度。

  • ApplicationMaster 是每个作业的管理者,它负责管理整个作业的生命周期,包括任务的调度、资源申请和执行。它根据 ResourceManager 分配的资源,向 NodeManager 请求执行任务,并跟踪任务的进度。ApplicationMaster 就像是一个项目经理,负责确保每个任务顺利完成。

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 作为资源管理系统,负责调度和管理集群资源,确保作业能够高效执行。两者合作,共同构成了大数据处理平台的核心。可以说,HDFS 提供了坚实的数据存储基础,而 YARN 则提供了高效的资源调度和任务执行平台。

相关推荐
JZC_xiaozhong1 小时前
DCS分散控制系统与MES集成:实现制造过程数据贯通的关键路径
大数据·运维·制造·etl工程师·bpm·数据集成与应用集成·业务流程管理
TDengine (老段)1 小时前
TDengine IDMP 数据可视化——状态时间线
大数据·数据库·ai·信息可视化·时序数据库·tdengine·涛思数据
DolphinDB智臾科技1 小时前
V3.00.5 & 2.00.18 更新!TPC-H 性能跃升,MPP 引擎来了…
大数据·数据库·时序数据库·dolphindb
云飞云共享云桌面1 小时前
10人SolidWorks设计团队如何提升SolidWorks软件利用率
大数据·linux·运维·服务器·网络·人工智能
冯RI375II6948713 小时前
CPC认证的流程是怎样的呢
大数据
打码人的日常分享14 小时前
数据中心信息中心信息科管理制度
大数据·运维·网络·云计算·制造
AI周红伟16 小时前
周红伟:信创大模型企业级部署实操,Qwen3.5 昇腾企业级部署案例实操
大数据·人工智能·大模型·智能体
SickeyLee16 小时前
AI产品经理-大模型的智力之源与能力边界
大数据·人工智能
智海观潮16 小时前
Vanna-ai - 让自然语言对话SQL数据库成为可能,支持多种数据库,大模型和向量存储
大数据·nlp·aigc