Amazon EMR:为每个EMR实例设置唯一数量的映射器和Reducer

时间:2012-06-21 15:08:24

标签: configuration hadoop mapreduce elastic-map-reduce

我正在运行具有M个核心实例和N个任务实例的Amazon EMR集群。

我的作业每天运行多次,并且对时间敏感,所以我保持M核心实例全天候运行,以便我不会有来自S3的数据传输开销。

N个任务节点正在根据需要动态启动和终止。

M核心节点是c1.mediums,N个任务节点是m2.xlarge。

有没有办法为每个实例配置mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.tasks.maximum?

对于我想要的核心节点: mapred.tasktracker.map.tasks.maximum = 2 mapred.tasktracker.reduce.tasks.maximum = 1

对于我至少想要的任务节点: mapred.tasktracker.map.tasks.maximum = 2 mapred.tasktracker.reduce.tasks.maximum = 2

请注意,任务跟踪器也在核心节点上运行,因此我认为此配置需要基于每个实例,具体取决于实例大小。

这可能吗?如果是这样,我该如何设置这种配置?感谢。

1 个答案:

答案 0 :(得分:0)

这里有一个很棒的博客 - 它给你答案。 http://blog.earlh.com/index.php/2013/05/modifying-the-number-of-mappers-or-reducers-on-a-running-emr-cluster/

请注意,您可能需要通过sshing进入任务节点。它不会那样工作。

我会将我的pem文件放到本地目录中。

chm 400上的pem文件

然后执行“scp -l hadoop -i .pem然后其余部分”

如博客中所述 请注意,我还没有尝试过,但我相信它会奏效。 此外 - 可能不需要.versions ...东西。你可能只需要conf。

由于