Hadoop YARN:分布式资源调度的新框架

0 下载量 126 浏览量 更新于2024-08-31 收藏 2.09MB PDF 举报
“分布式资源调度——YARN框架” Apache Hadoop YARN(Yet Another Resource Negotiator,另一种资源协调者)是Hadoop 2.x引入的一种全新的资源管理器,旨在解决Hadoop 1.x MapReduce框架中出现的问题。在MapReduce 1.x时代,JobTracker作为单一的中心节点,承担着资源管理和作业调度的重任,导致了严重的单点故障风险、节点压力过大、不易扩展以及不支持多框架作业等问题。 YARN的产生背景主要基于以下几个关键问题: 1. **单点故障**:JobTracker的唯一性意味着如果它发生故障,整个集群将无法正常工作,这是非常不稳定的架构设计。 2. **节点压力大**:JobTracker既要处理客户端请求,又要处理来自所有TaskTracker的报告,这使得JobTracker节点的负载极高。 3. **不易扩展**:由于JobTracker是单节点,随着集群规模的扩大,它容易成为性能瓶颈,难以通过增加节点来扩展。 4. **职责过重**:JobTracker负责的任务过多,包括资源分配、作业调度、监控等,这不利于系统的模块化和高效运行。 5. **不支持多框架作业**:1.x版本仅支持MapReduce作业,导致需要为不同的计算框架(如Spark)建立独立的集群,造成资源利用率低和运维成本高。 为了解决这些问题,YARN将资源管理和作业调度职责分离。YARN架构的主要组件包括ResourceManager(RM)、ApplicationMaster(AM)和NodeManager(NM): - **ResourceManager(RM)**:作为全局资源管理者,负责集群资源的分配和监控,解决了单点故障问题。 - **ApplicationMaster**:每个应用程序(如MapReduce、Spark)都有一个自己的AM,负责申请资源、与RM协商,并监控任务的执行。 - **NodeManager**:运行在每个节点上,负责该节点的资源管理和任务执行,直接与RM和AM通信,减轻了中心节点的压力。 通过这样的设计,YARN允许多个计算框架如MapReduce、Spark、Tez等在同一集群上并行运行,提高了资源利用率,降低了运维成本。此外,通过统一的资源管理层,各个框架可以共享集群资源,减少了数据传输的网络IO开销,提高了整体系统的效率和灵活性。 YARN的引入,是Hadoop发展史上的一次重大革新,它为大数据处理提供了更加健壮、可扩展和多框架兼容的平台,极大地推动了大数据生态系统的发展。