任务 JVM 内存设置 (AMI 3.0.0) Hadoop 2.2.0 使用两个参数配置用于 map 和 reduce 的内存:分别为 mapreduce.map.java.opts 和 mapreduce.reduce.java.opts。它们取代了早期 Hadoop 版本中的单个配置选项:mapreduce.map.java.opts。 下表显示了每实例类型
任务 JVM 内存设置 (AMI 3.0.0)
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 表示不能重复使用任务。
查看更多关于任务配置(Hadoop2.2.0)的详细内容...