了解Hadoop MapReduce

时间:2017-04-26 10:51:02

标签: hadoop mapreduce

假设hadoop系统中的节点可以使用8GB内存。

如果任务跟踪器和数据节点消耗2GB,并且每个任务所需的内存是200MB,那么可以启动多少map和reduce?

8-2 = 6GB

所以,6144MB / 200MB = 30.72

因此,将启动30个总map和reduce任务。

我是对的还是我错过了什么?

2 个答案:

答案 0 :(得分:1)

映射器和缩减器的数量不是由可用资源决定的。您必须通过调用params来设置代码中的reducer数量。

对于映射器的数量,它更复杂,因为它们是由Hadoop设置的。默认情况下,每个输入拆分大致有一个映射任务。您可以通过更改默认块大小,记录阅读器,输入文件数来调整它。

您还应该在hadoop配置文件中设置最大数量的map任务并减少并发运行的任务,以及分配给每个任务的内存。最后两个配置是基于可用资源的配置。请记住,在CPU上运行map和reduce任务,因此实际上受可用内核数量的限制(一个内核无法同时运行两个任务)。

This guide可以为您提供更多详细信息。

答案 1 :(得分:0)

并发任务的数量并不仅仅基于节点上可用的内存来确定。它也取决于核心数。如果您的节点有8个vcore,并且每个任务都占用1个core,则一次只能运行8个任务。