【发布时间】:2016-01-19 09:57:29
【问题描述】:
我可以通过将输入数据分成更小的块来增加我的 hadoop map/reduce 作业的执行时间吗?
第一个问题: 例如,我有 1GB 的输入文件用于映射任务。我的默认块大小是 250MB。所以只有 4 个映射器将被分配来完成这项工作。如果我将数据分成 10 块,每块将是 100MB,那么我有 10 个映射器来完成这项工作。但是每个分割块会在存储中占用 1 个块,这意味着每个分割数据块将浪费 150MB。如果我不想更改存储的块大小,在这种情况下应该怎么做?
第二个问题:如果我在映射作业之前拆分输入数据,它可以提高映射作业的性能。因此,如果我想对减少工作做同样的事情,我应该要求 mapper 在将数据提供给 reducer 之前拆分数据还是应该让 reducer 来做?
非常感谢。如果我也误解了什么,请纠正我。 Hadoop对我来说很新。因此,我们将不胜感激。
【问题讨论】: