首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >伪分布式数字映射和归约任务

伪分布式数字映射和归约任务
EN

Stack Overflow用户
提问于 2013-05-07 16:33:55
回答 2查看 648关注 0票数 2

我是Hadoop的新手。我已经成功地在伪分布式模式下配置了hadoop设置。现在我想知道选择map和reduce任务数量的逻辑是什么。我们指的是什么?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2013-05-07 17:22:38

您不能概括如何设置映射器/减少器的数量。

映射器的数量:您不能将映射器的数量显式地设置为某个数字(有一些参数可以设置,但它不会生效)。这取决于hadoop为给定的一组输入创建的输入拆分的数量。您可以通过设置mapred.min.split.size参数来控制它。有关更多信息,请阅读InputSplit部分here。如果由于大量的小文件而生成了大量映射器,并且您想要减少映射器的数量,那么您将需要组合来自多个文件的数据。请阅读:How to combine input files to get to a single mapper and control number of mappers

引用维基页面的话:

映射的数量通常由输入文件中的DFS块的数量决定。虽然这会导致人们调整他们的DFS块大小来调整地图的数量。map的正确并行级别似乎在10-100个map/node左右,尽管对于cpu非常少的map任务,我们已经将其提高到300个左右。任务设置需要一段时间,所以最好至少花一分钟来执行映射。

实际上,控制贴图的数量是微妙的。mapred.map.tasks参数只是对InputFormat的映射数量的一个提示。默认的InputFormat行为是将总字节数拆分为适当数量的片段。但是,在默认情况下,输入文件的DFS块大小被视为输入拆分的上限。拆分大小的下限可以通过mapred.min.split.size设置。因此,如果您期望10TB的输入数据和128MB的DFS块,那么除非您的mapred.map.tasks更大,否则最终会得到82k的map。最终,InputFormat决定映射的数量。

map任务的数量也可以使用JobConf的conf.setNumMapTasks(int num)手动增加。这可用于增加map任务的数量,但不会将该数量设置为低于Hadoop通过拆分输入数据确定的数量。

减速器数量:您可以显式设置减速器的数量。只需设置参数mapred.reduce.tasks即可。有用于设置此数量的guidelines,但通常默认的reducers数量应该足够好。有时需要一个报告文件,在这些情况下,您可能希望将减速器的数量设置为1。

再次引用维基的话:

的正确数量似乎是0.95或1.75 * (nodes * mapred.tasktracker.tasks.maximum)。在0.95时,所有的reduces都可以立即启动,并在地图完成时开始传输地图输出。在1.75版本中,较快的节点将完成它们的第一轮reduces,并启动第二轮reduces,从而更好地完成负载平衡。

目前,根据输出文件的缓冲区大小(io.buffer.size *2* numReduces << heapSize),缩减的数量被限制在大约1000个。这将在某个时候修复,但在此之前,它提供了一个相当坚定的上限。

number of reduce还控制输出目录中输出文件的数量,但通常这并不重要,因为下一个map/reduce步骤将把它们拆分为更小的映射拆分。

reduce任务的数量也可以通过JobConf的conf.setNumReduceTasks(int Num)以与map任务相同的方式增加。

票数 2
EN

Stack Overflow用户

发布于 2013-05-07 17:06:30

实际上不是。映射器的属性主要由no.由您正在使用的InputFormat创建的InputSplits和no。减速剂的数量。在映射阶段之后获得的分区的数量。话虽如此,您还应该记住每个从设备可用的插槽数量,以及可用内存。但作为一个经验法则,你可以使用这种方法:

接受拒绝吧。虚拟CPU*.75,这是第一位。您可以配置的插槽数量。例如,如果您有12个物理核心(或24个虚拟核心),则(24*.75)=18个插槽。现在,根据您的需求,您可以选择要使用的映射器和减法器的数量。有了18个MR插槽,你可以有9个映射器和9个减速器,或者12个映射器和9个减速器,或者你认为可以的任何东西。

HTH

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16414664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档