MapReduce的计算资源划分
来源:互联网 发布:软件测试培训内容 编辑:程序博客网 时间:2024/05/20 09:25
一个MapReduce作业的计算工作都由TaskTracker完成, 用户向Hadoop提交作业,JobTracke:会将该作业拆分为多个任务,并根据心跳信息交由空闲的TaskTracker启动。一个TaskTracker能够启动的任务数量是由TaskTracker配置的任务槽(slot)决定。槽是Hadoop的计算资源的表示模型,Hadoop将各个节点上的多维度资源(CPU、内存等)抽象成一维度的槽,这样就将多维度资源分配问题转换成一维度的槽分配的问题。在实际情况中,Map任务和Reduce任务需要的计算资源不尽相同,Hadoop又将槽分成Map槽和Reduce槽,并且 Map任务只能使用Map槽,Reduce任务只能使用Reduce槽,如图示。
Hadoop的资源管理采用了静态资源设置方案,即每个节点配置好Map槽和Reduce槽的数量(配置项为mapred-site.xml的mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum ),一旦 Hadoop启动后将无法动态更改。
这样的资源管理方案是有一定的弊端。
(1)槽被设定为Map槽和Reduce槽,会导致在某一时刻Map槽或Reduce槽紧缺,降低
了槽的使用率。
(2)不能动态地设置槽数量,可能会导致某一个TaskTracker资源使用率过高或过低。
(3)提交的作业是多样化的,如果一个任务需要1 GB内存,将会产生资源浪费,如果一
个任务需要3 GB内存,则会发生资源抢占的情况。
在Hadoop(CDH4, CDH5)中,上述的弊端已经得到了很大程度地解决。
本文参考书籍------Hadoop海量数据处理 技术详解与项目实战
- MapReduce的计算资源划分
- 循环的计算域划分
- 计算正整数的划分数
- 1/10计算资源,1/3耗时,Spark颠覆MapReduce保持的排序记录
- 1/10计算资源,1/3耗时,Spark颠覆MapReduce保持的排序记录
- mapreduce 分片大小的计算
- Hadoop的MapReduce分布式计算
- 【云计算】mapreduce的理解
- 子网的计算,子网的划分
- 子网掩码的计算与划分详解
- 子网掩码的计算与划分详解
- 子网掩码的计算与划分详解
- IP地址的网段划分和计算
- 子网掩码的计算与划分详解
- 子网掩码的计算与划分详解
- 子网掩码的划分及相关计算。
- 子网掩码的计算与划分详解
- 计算整数的划分可能性算法
- Unix或Linux中&、jobs、fg、bg等命令的使用方法
- React-native、原生混合开发AndroidStudio打包流程(Windows 10)
- RDD基本操作(下)
- android 补间(Tween)动画
- linux uuid/uuid.h
- MapReduce的计算资源划分
- vi/vim多行注释、取消多行注释、多行复制、多行删除
- YII2的详解
- Android与js交互
- 基于SolrCloud的搜索服务架构
- Trafodion Troubleshooting
- 安装 Scrapy for Python2.7
- android 调用系统相机,预置路径,解决小米等机型uri返回为null的问题
- I2C和SPI总线对比