Hadoop YARN:从MapReduce1.0的缺陷到资源调度优化
83 浏览量
更新于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 上传
2023-06-05 上传
2023-06-05 上传
2023-02-06 上传
2023-05-09 上传
2023-06-08 上传
2023-06-08 上传
weixin_38706531
- 粉丝: 3
- 资源: 945
最新资源
- ckad_examtips
- ng-multi-config-example
- 14J936-变形缝建筑构造.rar
- jsonQuery:json数据查找+格式化
- 在Windows窗体上创建OpenGL视图
- pyg_lib-0.3.1+pt20-cp310-cp310-macosx_11_0_x86_64whl.zip
- Android和桌面上的对象跟踪
- 173. 2019动漫游戏上市公司年度绩效数据报告.rar
- robotjs安装环境依赖.rar
- mgXPort-开源
- git-test:mi引物proyecto con git
- pyg_lib-0.3.0+pt20cpu-cp39-cp39-linux_x86_64whl.zip
- uCGUIBulider4.0.zip
- Navicat for MySQL_new.7z
- 全国大学生电子设计竞赛常用电路模块制作_完整版300页.zip
- paraswebsite:莎拉丝娅官方网站