假设我有一个 EMR 作业在 11 个节点集群上运行:m1.small 主节点,而 10 个 m1.xlarge 从节点。
现在一个 m1.xlarge 节点有 15 GB 的 RAM。
那么如何决定可以设置的并行映射器和减速器的数量?
我的工作是内存密集型的,我希望将越来越多的堆分配给 JVM。
另一个相关问题:如果我们设置以下参数:
<property><name>mapred.child.java.opts</name><value>-Xmx4096m</value></property>
<property><name>mapred.job.reuse.jvm.num.tasks</name><value>1</value></property>
<property><name>mapred.tasktracker.map.tasks.maximum</name><value>2</value></property>
<property><name>mapred.tasktracker.reduce.tasks.maximum</name><value>2</value></property>
那么这 4GB 将由 4 个进程(2 个映射器和 2 个减速器)共享还是每个进程都获得 4GB?