欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > Yarn的定义?

Yarn的定义?

2025/4/19 14:58:29 来源:https://blog.csdn.net/2301_81527420/article/details/147333494  浏览:    关键词:Yarn的定义?

YARN(Yet Another Resource Negotiator) 是 Apache Hadoop 的核心组件之一,负责集群的资源管理任务调度。它的主要作用是将 Hadoop 的资源管理作业调度/监控功能分离,形成一个通用的资源管理平台,可以支持多种计算框架(如 MapReduce、Spark、Flink 等)。


YARN 的核心功能

  1. 资源管理(Resource Management)

    • 管理集群的 CPU、内存等计算资源,并按需分配给不同的应用程序。

    • 通过 ResourceManager(RM) 和 NodeManager(NM) 实现全局资源调度和节点级资源监控。

  2. 任务调度(Job Scheduling)

    • 支持多种调度策略(如 FIFO、Capacity Scheduler、Fair Scheduler)。

    • 确保不同任务公平或按优先级获取资源。

  3. 多计算框架支持

    • 不仅支持 Hadoop MapReduce,还支持 Spark、Flink、Tez 等分布式计算框架。


YARN 的架构

YARN 采用 Master/Slave 架构,主要包含以下组件:

组件角色
ResourceManager (RM)集群资源的全局管理者,负责调度和分配资源。
NodeManager (NM)每个工作节点上的代理,负责管理本节点的资源(CPU、内存)并执行任务。
ApplicationMaster (AM)每个应用程序(如 MapReduce 作业)的管理者,负责向 RM 申请资源,并与 NM 协调任务执行。
Container资源的抽象单位(如 2 CPU + 4GB 内存),用于运行任务。

YARN 的工作流程(以 MapReduce 为例)

  1. 客户端提交作业 → RM 接收请求。

  2. RM 分配 Container → 启动 ApplicationMaster(AM)。

  3. AM 向 RM 申请资源 → RM 分配 Container。

  4. AM 与 NM 通信 → 在 Container 中启动 Map/Reduce 任务。

  5. 任务执行完成 → AM 向 RM 注销并释放资源。


YARN 的优势

✅ 高资源利用率:动态分配资源,避免资源浪费。
✅ 多框架支持:不仅限于 MapReduce,还可运行 Spark、Flink 等。
✅ 可扩展性:支持大规模集群(数千节点)。
✅ 灵活性:支持不同的调度策略(如公平调度、容量调度)。


总结

YARN 是 Hadoop 的资源管理和任务调度系统,它的核心作用是:

  • 管理集群资源(CPU、内存)。

  • 调度任务(支持多种计算框架)。

  • 提高资源利用率(动态分配,避免浪费)。

它是 Hadoop 2.x 及以后版本的核心组件,取代了 Hadoop 1.x 中的 JobTracker/TaskTracker 架构,使 Hadoop 从单一的 MapReduce 计算框架演变为一个通用的分布式计算平台

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词