0

Hadoop如何决定否。减速器运行特定问题?它在什么基础上决定分区器的数量或否。集群大小还是什么?解释下面的问题 - 我有 640MB 的输入文件,我有 64MB 的块大小。我的集群大小是 5 节点集群。我已将输入文件写入 HDFS,它包含 10 个数据块。如果我为写入的输入文件运行我的 wordcount 程序,那么告诉我将运行多少个映射器和多少个减速器。

4

3 回答 3

1

映射的数量取决于 IputFormatClass 的选择。默认情况下,它是 TextInputFormat 类,它将创建与块数相同数量的地图。如果只有最后一条记录在两个块中被破坏(在这种情况下,映射数将为块数减一),则会出现异常。number reducers 是一种配置选择,甚至可以在作业提交期间指定。默认情况下,reducer 的数量为 1。

于 2013-08-27T10:38:36.273 回答
0

将块大小从 64 MB 更改为 128MB,将块数从 10 减少到 5 个。您可以在配置中仅指定减速器的数量,但无法通过参数控制减速器的数量。映射的数量取决于输入拆分的数量和输入格式。我建议减速器的数量少于您的集群大小。在 MapReduce 2 框架中,容器控制正在使用的资源,因此您可以根据数据估计来调整资源大小,并根据数据大小启动尽可能多的 reducer,并降低函数复杂性。

于 2014-04-13T11:07:45.017 回答
0

鉴于可以在 conf 文件中指定映射器和缩减器编号,因此没有唯一的答案。但默认为:
640Mb 和 64Mb 块 = 10 个映射器和 1 个减速器。

为了获得更准确的答案,映射器的数量是根据设置的,
File total size / File block size 但是您可以设置配置变量以更改其行为,例如:
映射最小拆分大小、映射最大拆分大小、最小映射数等...如果您想了解更多关于这些变量查看mapred 默认 hdfs 默认core 默认 顺便说一句,关于堆栈上的 map 和 reduce 数量有很多问题。

于 2013-08-27T09:45:32.357 回答