0.20.2 作业内存控制策略分析

对于Hadoop而言,对作业使用资源量进行限制是非常重要的,这可以防止一些有问题的作业因耗掉集群中大量资源而干扰其他正常作业。本文主要分析了Hadoop-0.20.2中作业内存控制相关策略,包括怎样启用Hadoop作业内存使用量控制功能,Hadoop怎样实现作业内存控制等。

1. 内存相关配置项

(1) 配置内存计算插件

<property>

<name> mapred.tasktracker.memory_calculator_plugin</name>

<value>org.apache.hadoop.util.LinuxMemoryCalculatorPlugin</value>

</property>

(2) 配置限制内存的一些参数

mapred.cluster.map.memory.mb 每个map slot预留的内存

mapred.cluster.reduce.memory.mb 每个reduce slot预留的内存

以上两个选项用于计算taskTracker上可用内存

mapred.cluster.max.map.memory.mb 每个map task使用的内存上限

mapred.cluster.max.reduce.memory.mb 每个reduce task使用的内存上限

(3) 用户可指定的作业内存参数

mapred.job.map.memory.mb 一个map任务预留的内存上限, 一个map任务可以申请多个map slot为其工作, 如果内存不足的话 mapred.job.reduce.memory.mb 一个reduce任务预留的内存上限, 一个reduce任务可以申请多个reduce slot为其工作, 如果内存不足的话

这两个参数可以动态配置,即:为不同用户指定不同内存参数。

(4) 过期的配置选项

下面几个选项已经过期,不推荐使用:

mapred.task.maxvmem

mapred.task.limit.maxvmem, 用mapred.cluster.max.map.memory.mb和mapred.cluster.max.reduce.memory.mb代替

mapred.task.default.maxvmem

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/619ca1ab991261d77b599b79539758bf.html