Hadoop YARN:现代大数据集群资源管理与作业调度
Hadoop YARN:现代大数据集群资源管理与作业调度
Hadoop YARN(Yet Another Resource Negotiator)是 Hadoop 2.x 版本引入的一种资源管理器,用于管理和调度大数据集群中的资源,是 Hadoop 集群的核心组件之一。YARN 的设计目标是提高 Hadoop 的资源利用率、灵活性和可伸缩性,使其能够处理更加复杂和多样化的工作负载。
Yarn的概述
1.1.解释Yarn的定义和基本概念
Hadoop YARN(Yet Another Resource Negotiator)是 Hadoop 2.x 版本引入的一种资源管理器,用于管理和调度大数据集群中的资源,是 Hadoop 集群的核心组件之一。YARN 的设计目标是提高 Hadoop 的资源利用率、灵活性和可伸缩性,使其能够处理更加复杂和多样化的工作负载。
1.2.概述 YARN 的起源和发展历程
起源:在 Hadoop 1.x 版本中,资源管理和作业调度功能都由 JobTracker 负责,这种集中式的架构存在一些缺点,如扩展性差、单点故障等。因此,Google 发布的 MapReduce 论文以及大数据领域的发展需要促使了 Hadoop 社区寻求一种更灵活、更可扩展的资源管理框架。
发展历程:2012 年,Hadoop 2.x 版本正式发布,其中包含了 YARN 的实现。YARN 的引入为 Hadoop 提供了一个全新的资源管理和作业调度框架,使得 Hadoop 集群可以同时运行多个计算框架(如 MapReduce、Spark、Flink 等),并能够更灵活地处理不同类型的工作负载。
Yarn架构解析
2.1.详细介绍Yarn的体系结构和组件
YARN 的基本思想是将资源管理和作业调度/监控的功能拆分为单独的守护进程。这个想法是拥有一个全局 ResourceManager (RM) 和每个应用程序的 ApplicationMaster (AM)。应用程序可以是单个作业,也可以是作业的 DAG。
ResourceManager 和 NodeManager 构成了数据计算框架。ResourceManager 是在系统中的所有应用程序之间仲裁资源的最终权威机构。NodeManager 是负责容器的每机框架代理,监视其资源使用情况(cpu、内存、磁盘、网络),并将其报告给 ResourceManager/Scheduler。
实际上,每个应用程序的 ApplicationMaster 是一个特定于框架的库,其任务是从 ResourceManager 协商资源,并与 NodeManager 合作来执行和监视任务。
2.2.解析ResourceManager、NodeManager、ApplicationMaster 等关键组件的作用和职责
2.2.1.ResourceManager
ResourceManager有两个主要组件:Scheduler和ApplicationsManager。
2.2.1.1.Scheduler(调度程序):
Scheduler复制将资源分配给各种正在运行的应用程序,这些应用程序受到熟悉的容量,队列等限制.调度程序是纯调度程序,因为它不对应用程序的状态执行监视或跟踪。此外,它不保证由于应用程序故障或硬件故障而重新启动失败的任务。调度程序根据应用程序的资源需求执行其调度功能;它基于资源容器的抽象概念