任务 JVM 内存设置 (AMI 3.0.0) Hadoop 2.2.0 使用两个参数配置用于 map 和 reduce 的内存:分别为 mapreduce.map.java.opts 和 mapreduce.reduce.java.opts。它们取代了早期 Hadoop 版本中的单个配置选项:mapreduce.map.java.opts。 下表显示了每实例类型
Hadoop 2.2.0 使用两个参数配置用于 map 和 reduce 的内存:分别为 mapreduce.map.java.opts 和 mapreduce.reduce.java.opts。它们取代了早期 Hadoop 版本中的单个配置选项:mapreduce.map.java.opts。
下表显示了每实例类型的这些设置的默认值。
m1.medium
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx768m |
mapreduce.reduce.java.opts | -Xmx768m |
mapreduce.map.memory.mb | 1024 |
mapreduce.reduce.memory.mb | 1024 |
yarn.scheduler.minimum-allocation-mb | 512 |
yarn.scheduler.maximum-allocation-mb | 2048 |
yarn.nodemanager.resource.memory-mb | 2048 |
m1.large
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx864m |
mapreduce.reduce.java.opts | -Xmx1536m |
mapreduce.map.memory.mb | 1024 |
mapreduce.reduce.memory.mb | 2048 |
yarn.scheduler.minimum-allocation-mb | 512 |
yarn.scheduler.maximum-allocation-mb | 3072 |
yarn.nodemanager.resource.memory-mb | 5120 |
m1.xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx512m |
mapreduce.reduce.java.opts | -Xmx1536m |
mapreduce.map.memory.mb | 768 |
mapreduce.reduce.memory.mb | 2048 |
yarn.scheduler.minimum-allocation-mb | 256 |
yarn.scheduler.maximum-allocation-mb | 8 192 |
yarn.nodemanager.resource.memory-mb | 12288 |
m2.xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx1280m |
mapreduce.reduce.java.opts | -Xmx2304m |
mapreduce.map.memory.mb | 1536 |
mapreduce.reduce.memory.mb | 2560 |
yarn.scheduler.minimum-allocation-mb | 512 |
yarn.scheduler.maximum-allocation-mb | 7168 |
yarn.nodemanager.resource.memory-mb | 14336 |
m2.2xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx1280m |
mapreduce.reduce.java.opts | -Xmx2304m |
mapreduce.map.memory.mb | 1536 |
mapreduce.reduce.memory.mb | 2560 |
yarn.scheduler.minimum-allocation-mb | 512 |
yarn.scheduler.maximum-allocation-mb | 8 192 |
yarn.nodemanager.resource.memory-mb | 30720 |
m3.xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx1515m |
mapreduce.reduce.java.opts | -Xmx1792m |
mapreduce.map.memory.mb | 1904 |
mapreduce.reduce.memory.mb | 2150 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 3788 |
yarn.nodemanager.resource.memory-mb | 5273 |
m3.2xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx2129m |
mapreduce.reduce.java.opts | -Xmx2560m |
mapreduce.map.memory.mb | 2826 |
mapreduce.reduce.memory.mb | 3072 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 5324 |
yarn.nodemanager.resource.memory-mb | 9113 |
m2.4xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx1280m |
mapreduce.reduce.java.opts | -Xmx2304m |
mapreduce.map.memory.mb | 1536 |
mapreduce.reduce.memory.mb | 2560 |
yarn.scheduler.minimum-allocation-mb | 512 |
yarn.scheduler.maximum-allocation-mb | 8 192 |
yarn.nodemanager.resource.memory-mb | 61440 |
c1.medium
配置选项 | 默认值 |
---|---|
io.sort.mb | 100 |
mapreduce.map.java.opts | -Xmx288m |
mapreduce.reduce.java.opts | -Xmx288m |
mapreduce.map.memory.mb | 512 |
mapreduce.reduce.memory.mb | 512 |
yarn.scheduler.minimum-allocation-mb | 256 |
yarn.scheduler.maximum-allocation-mb | 512 |
yarn.nodemanager.resource.memory-mb | 1024 |
c1.xlarge
配置选项 | 默认值 |
---|---|
io.sort.mb | 150 |
mapreduce.map.java.opts | -Xmx864m |
mapreduce.reduce.java.opts | -Xmx1536m |
mapreduce.map.memory.mb | 1024 |
mapreduce.reduce.memory.mb | 2048 |
yarn.scheduler.minimum-allocation-mb | 512 |
yarn.scheduler.maximum-allocation-mb | 2048 |
yarn.nodemanager.resource.memory-mb | 5120 |
c3.large
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx768m |
mapreduce.reduce.java.opts | -Xmx768m |
mapreduce.map.memory.mb | 921 |
mapreduce.reduce.memory.mb | 921 |
yarn.scheduler.minimum-allocation-mb | 499 |
yarn.scheduler.maximum-allocation-mb | 1920 |
yarn.nodemanager.resource.memory-mb | 1920 |
c3.xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx1177m |
mapreduce.reduce.java.opts | -Xmx1356m |
mapreduce.map.memory.mb | 1413 |
mapreduce.reduce.memory.mb | 1628 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 2944 |
yarn.nodemanager.resource.memory-mb | 3302 |
c3.2xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx1515m |
mapreduce.reduce.java.opts | -Xmx1792m |
mapreduce.map.memory.mb | 1904 |
mapreduce.reduce.memory.mb | 2150 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 3788 |
yarn.nodemanager.resource.memory-mb | 5273 |
c3.4xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx2129m |
mapreduce.reduce.java.opts | -Xmx2560m |
mapreduce.map.memory.mb | 2826 |
mapreduce.reduce.memory.mb | 3072 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 5324 |
yarn.nodemanager.resource.memory-mb | 9113 |
c3.8xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx4669m |
mapreduce.reduce.java.opts | -Xmx4915m |
mapreduce.map.memory.mb | 4669 |
mapreduce.reduce.memory.mb | 4915 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 8396 |
yarn.nodemanager.resource.memory-mb | 16793 |
cc1.4xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx1280m |
mapreduce.reduce.java.opts | -Xmx2304m |
mapreduce.map.memory.mb | 1536 |
mapreduce.reduce.memory.mb | 2560 |
yarn.scheduler.minimum-allocation-mb | 512 |
yarn.scheduler.maximum-allocation-mb | 5120 |
yarn.nodemanager.resource.memory-mb | 20480 |
cg1.4xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx1280m |
mapreduce.reduce.java.opts | -Xmx2304m |
mapreduce.map.memory.mb | 1536 |
mapreduce.reduce.memory.mb | 2560 |
yarn.scheduler.minimum-allocation-mb | 512 |
yarn.scheduler.maximum-allocation-mb | 5120 |
yarn.nodemanager.resource.memory-mb | 20480 |
cc2.8xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx1280m |
mapreduce.reduce.java.opts | -Xmx2304m |
mapreduce.map.memory.mb | 1536 |
mapreduce.reduce.memory.mb | 2560 |
yarn.scheduler.minimum-allocation-mb | 512 |
yarn.scheduler.maximum-allocation-mb | 8 192 |
yarn.nodemanager.resource.memory-mb | 56320 |
cr1.8xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx10895m |
mapreduce.reduce.java.opts | -Xmx13516m |
mapreduce.map.memory.mb | 15974 |
mapreduce.reduce.memory.mb | 16220 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 27238 |
yarn.nodemanager.resource.memory-mb | 63897 |
g2.2xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx512m |
mapreduce.reduce.java.opts | -Xmx1536m |
mapreduce.map.memory.mb | 768 |
mapreduce.reduce.memory.mb | 2048 |
yarn.scheduler.minimum-allocation-mb | 256 |
yarn.scheduler.maximum-allocation-mb | 8 192 |
yarn.nodemanager.resource.memory-mb | 12288 |
hi1.4xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx3379m |
mapreduce.reduce.java.opts | -Xmx4121m |
mapreduce.map.memory.mb | 4700 |
mapreduce.reduce.memory.mb | 4945 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 8448 |
yarn.nodemanager.resource.memory-mb | 16921 |
hs1.8xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx1280m |
mapreduce.reduce.java.opts | -Xmx2304m |
mapreduce.map.memory.mb | 1536 |
mapreduce.reduce.memory.mb | 2560 |
yarn.scheduler.minimum-allocation-mb | 512 |
yarn.scheduler.maximum-allocation-mb | 8 192 |
yarn.nodemanager.resource.memory-mb | 56320 |
i2.xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx2150m |
mapreduce.reduce.java.opts | -Xmx2585m |
mapreduce.map.memory.mb | 2856 |
mapreduce.reduce.memory.mb | 3102 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 5376 |
yarn.nodemanager.resource.memory-mb | 9241 |
i2.2xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx3399m |
mapreduce.reduce.java.opts | -Xmx4147m |
mapreduce.map.memory.mb | 4730 |
mapreduce.reduce.memory.mb | 4976 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 8499 |
yarn.nodemanager.resource.memory-mb | 17049 |
i2.4xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx5898m |
mapreduce.reduce.java.opts | -Xmx7270m |
mapreduce.map.memory.mb | 8478 |
mapreduce.reduce.memory.mb | 8724 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 14745 |
yarn.nodemanager.resource.memory-mb | 32665 |
i2.8xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx10895m |
mapreduce.reduce.java.opts | -Xmx13516m |
mapreduce.map.memory.mb | 15974 |
mapreduce.reduce.memory.mb | 16220 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 27238 |
yarn.nodemanager.resource.memory-mb | 63897 |
r3.xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx2150m |
mapreduce.reduce.java.opts | -Xmx3102m |
mapreduce.map.memory.mb | 2856 |
mapreduce.reduce.memory.mb | 3102 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 5376 |
yarn.nodemanager.resource.memory-mb | 9241 |
r3.2xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx3399m |
mapreduce.reduce.java.opts | -Xmx4147m |
mapreduce.map.memory.mb | 4743 |
mapreduce.reduce.memory.mb | 4976 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 8499 |
yarn.nodemanager.resource.memory-mb | 17049 |
r3.4xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx5898m |
mapreduce.reduce.java.opts | -Xmx7270m |
mapreduce.map.memory.mb | 8478 |
mapreduce.reduce.memory.mb | 8724 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 14745 |
yarn.nodemanager.resource.memory-mb | 32665 |
r3.8xlarge
配置选项 | 默认值 |
---|---|
mapreduce.map.java.opts | -Xmx10895m |
mapreduce.reduce.java.opts | -Xmx13516m |
mapreduce.map.memory.mb | 15974 |
mapreduce.reduce.memory.mb | 16220 |
yarn.scheduler.minimum-allocation-mb | 532 |
yarn.scheduler.maximum-allocation-mb | 27238 |
yarn.nodemanager.resource.memory-mb | 69897 |
您可以在执行每项任务时启动新 JVM,实现更好的任务隔离;也可以在各项任务之间共享 JVM,降低框架开销。如果您处理的是许多小文件,合理的做法是多次重复使用 JVM,以摊销启动成本。然而,如果每项任务耗时较长或处理的数据量较大,您可以选择不重复使用 JVM,以确保释放出所有内存供后续任务使用。
使用 mapred.job.reuse.jvm.num.tasks
选项配置 JVM 重复使用设置。
使用引导操作修改 JVM
在安装了 Amazon EMR CLI 的目录下,从命令行运行以下命令。有关更多信息,请参见 Amazon EMR 的命令行接口参考。
Linux、UNIX 和 Mac OS X 用户:
./elastic-mapreduce --create --alive --name "JVM infinite reuse" \ --bootstrap-action s3://elasticmapreduce/bootstrap-actions/configure-hadoop \ --bootstrap-name "Configuring infinite JVM reuse" \ --args "-m,mapred.job.reuse.jvm.num.tasks=-1"
Windows 用户:
ruby elastic-mapreduce --create --alive --name "JVM infinite reuse" --bootstrap-action s3://elasticmapreduce/bootstrap-actions/configure-hadoop --bootstrap-name "Configuring infinite JVM reuse" --args "-m,mapred.job.reuse.jvm.num.tasks=-1"
Note
Amazon EMR 已将 mapred.job.reuse.jvm.num.tasks
的值设置为 20,但您可以通过引导操作覆盖此值。值 -1
表示在单一作业中重复使用的次数不受限制,1
表示不能重复使用任务。