map和reduce任务的数量是如何确定的?

gmxoilav  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(742)

在hadoop上使用map-reduce运行某个文件时,有时会创建1个map任务和1个reduce任务,而其他文件可以使用4个map任务和1个reduce任务。
我的问题是基于map和reduce任务的数量是多少?
是否有特定的map/reduce大小,然后创建新的map/reduce?
非常感谢各位。

w9apscun

w9apscun1#

Map器的数量等于将要处理的输入文件的hdfs块的数量。理想情况下,还原器的数量应该是Map器总数的10%。假设你有100个Map器,那么理想情况下,还原器的数量应该在10个左右。但是,在map reduce作业中指定reducer的数量是可能的。

a11xaf1n

a11xaf1n2#

官方文件:
Map的数量通常由输入文件中dfs块的数量驱动。尽管这会导致人们调整他们的dfs块大小来调整Map的数量。Map的正确并行级别似乎是10-100个Map/节点,尽管对于非常cpu的光照Map任务,我们已经将其提高到300个左右。任务设置需要一段时间,因此最好至少花一分钟执行Map。
理想的异径管应为使其最接近的最佳值:
块大小的倍数
5到15分钟之间的任务时间
创建尽可能少的文件
除此之外的任何事情都意味着你的减速机很有可能不是很好。有一个巨大的趋势是用户使用一个非常高的值(“更多的并行意味着更快!”)或者是一个非常低的值(“我不想破坏我的命名空间配额!”)。两者都同样危险,导致一个或多个:
工作流下一阶段的糟糕表现
洗牌造成的糟糕表现
糟糕的整体表现,因为你已经超载了 namenode 最终无用的东西
毫无理智地销毁磁盘io
大量的网络传输

相关问题