Hadoop YARN:从MapReduce1.0的缺陷到资源调度优化
165 浏览量
更新于2024-08-28
收藏 300KB PDF 举报
Hadoop-YARN是Hadoop框架在Hadoop 2.0版本中对MapReduce 1.0进行的重要改进,旨在解决原有的资源管理和任务调度中存在的问题。在MapReduce 1.0中,主要缺陷体现在以下几个方面:
1. **单点故障**:原有的JobTracker是中心化的,一旦这个节点出现问题,可能导致整个系统无法正常运行,存在较高的故障风险。
2. **资源负载不均衡**:JobTracker承担了过多职责,如任务管理和资源分配,这使得在任务增多时,尤其是当节点数量达到4000个时,内存消耗过大,可能导致性能瓶颈和资源浪费。
3. **内存管理不足**:MapReduce 1.0的资源分配策略过于简单,仅基于MapReduce任务的数量,而不考虑CPU和内存的实际需求,易引发内存溢出问题。
4. **资源划分不合理**:强制定义了slot的概念,如Mapslot和Reduceslot,这种硬性划分限制了系统的灵活性,可能导致资源利用率不高。
在Hadoop 2.0引入的YARN架构中,MapReduce的功能被分解为两个独立的部分:计算框架和资源管理调度框架。资源管理调度功能独立出来后,形成了ResourceManager(RM),它是一个全局的资源调度器,包括调度器和应用程序管理器两部分。
- **ResourceManager (RM)**:作为核心组件,RM负责整个集群的资源管理和分配,通过调度器将资源以容器的形式分配给应用程序。调度器支持多种策略,如根据数据位置进行就近计算,优化资源利用。同时,RM允许用户自定义调度器以满足特定需求。
- **Scheduler**:负责根据应用程序的需求和资源可用性,决定如何分配容器,确保资源的有效利用。
- **Container**:动态资源分配单元,封装了CPU、内存、磁盘等资源,为每个应用程序设置资源上限,避免过度消耗。
- **ApplicationMaster (AM)**:在YARN上运行的MapReduce 2.0版本中,AM负责向RM申请资源,并分配给其内部任务,同时进行任务调度和容错管理。
- **NodeManager**:负责单个节点的资源管理,接收来自RM和AM的命令,执行具体的资源分配操作。
通过这种方式,Hadoop-YARN实现了计算框架和资源管理的解耦,提高了系统的稳定性和资源利用率,使得Hadoop能够更好地适应大规模分布式计算环境的需求。同时,YARN的设计也为其他分布式计算框架和定制化调度策略提供了灵活性。
2017-12-02 上传
2022-04-23 上传
2022-05-01 上传
2021-06-24 上传
2018-01-12 上传
2018-01-12 上传
2023-06-05 上传
2023-06-05 上传
2023-02-06 上传
2023-05-09 上传
weixin_38706531
- 粉丝: 3
- 资源: 945
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析