YARN:Hadoop集群的资源管理革命

版权申诉
0 下载量 162 浏览量 更新于2024-07-02 收藏 366KB PPTX 举报
"这篇文档详细介绍了YARN在大数据平台构建中的重要概念,包括YARN的定义、诞生背景、优势、特点以及其核心架构。" 在大数据处理领域,YARN(Yet Another Resource Negotiator)是一个至关重要的组件,它作为Hadoop集群的资源管理器,旨在解决Hadoop 1.x中MapReduce的局限性。YARN的出现是为了克服早期Hadoop架构中的扩展性差、可靠性不足、资源利用率低以及不支持多计算框架等问题。 1. **扩展性差**:在Hadoop 1.x中,JobTracker同时负责资源管理和作业控制,这种设计导致了单一节点的压力过大,成为系统扩展的瓶颈。YARN通过将资源管理和作业调度分离,显著提升了系统的可扩展性。 2. **可靠性差**:采用Master/Salve架构,Master节点的单点故障可能导致整个系统瘫痪。YARN引入了高可用性设计,降低了单点故障的风险。 3. **资源利用率低**:Hadoop 1.x的资源分配基于槽位(slot),导致资源分配粗粒度,部分资源可能无法得到有效利用。YARN通过更精细的资源管理,提高了资源利用率。 4. **不支持多框架**:在Hadoop 1.x中,仅支持MapReduce一种计算框架。YARN的设计使得系统能够支持多种计算框架并行运行,如Spark、Tez等。 YARN的核心思想是引入全局的ResourceManager和每个应用程序对应的ApplicationMaster,以及分布在各节点上的NodeManager。ResourceManager负责集群资源的全局调度,ApplicationManager管理用户作业的生命周期,而NodeManager则监控和管理节点上的任务执行。这种设计使得YARN具备以下优势: 1. **支持非MapReduce应用**:YARN不再局限于MapReduce,可以运行各种类型的计算框架。 2. **可扩展性**:通过分离资源管理和作业调度,YARN可以轻松扩展以适应更大规模的集群。 3. **提高资源利用率**:通过更精细的资源分配,避免了资源浪费,提高了集群的整体效率。 4. **用户敏捷性**:开发人员可以更快地部署和调整应用程序,增强了系统的响应速度。 5. **高可用性**:通过设置ResourceManager的备份,实现了系统的高可用性,确保服务连续性。 YARN的架构遵循Master/Slave模式,主要包括ResourceManager、NodeManager和ApplicationMaster三个关键组件。ResourceManager中的Scheduler负责资源的公平或优先级调度,而ApplicationManager处理应用程序的提交、初始化和监控。NodeManager则在每个节点上运行,与ResourceManager通信,报告资源使用情况,并执行ApplicationMaster的指令。 YARN的出现极大地改进了Hadoop的架构,使得大数据处理更加灵活、高效和可靠,成为了现代大数据平台构建不可或缺的一部分。

[2023-07-04 17:11:29.952]Exception when trying to cleanup container container_e10_1661450914423_18596_01_000003: java.io.IOException: Problem signalling container 97181 with SIGTERM; output: null and exitCode: -1 at org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor.signalContainer(LinuxContainerExecutor.java:750) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.sendSignal(ContainerLaunch.java:908) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.signalProcess(ContainerLaunch.java:922) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.cleanupContainer(ContainerLaunch.java:774) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncher.handle(ContainersLauncher.java:173) at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncher.handle(ContainersLauncher.java:62) at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:221) at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:143) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.hadoop.yarn.server.nodemanager.containermanager.runtime.ContainerExecutionException: Signal container failed at org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.runtime.DefaultLinuxContainerRuntime.signalContainer(DefaultLinuxContainerRuntime.java:163) at org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.runtime.DelegatingLinuxContainerRuntime.signalContainer(DelegatingLinuxContainerRuntime.java:159) at org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor.signalContainer(LinuxContainerExecutor.java:739) ... 8 more | org.apache.flink.yarn.YarnResourceManager (ResourceManager.java:822)

2023-07-12 上传