reduce任务和reducer之间的区别

时间:2016-03-08 07:13:14

标签: hadoop mapreduce hadoop2 reducers bigdata

“reducer与reduce任务不同。reducer可以运行多个reduce任务”。有人可以用下面的例子来解释这个吗?

foo.txt:很好,这是foo文件 bar.txt:这是条形文件

我正在使用2个减速器。什么是减少任务并基于减速器中生成的多个减少任务?

3 个答案:

答案 0 :(得分:3)

Reducer 是一个类,其中包含 reduce 函数,如下所示

protected void reduce(KEYIN key, Iterable<VALUEIN> values, Context context
                        ) throws IOException, InterruptedException {

减少任务 是在节点上运行的程序,该节点正在执行 Reducer 类的 reduce 功能。< / p>

您可以将 减少任务 视为 Reducer

的实例

查看Apache MapReduce教程页面了解更多详情( Payload 部分)。

答案 1 :(得分:2)

根据我的理解,Reducer是计算资源的一个插槽,可用于完成reduce任务。可以将reducer分配给任务,该任务执行完成/失败,并且一旦任务到达最终状态,就可以处理另一个reduce任务,清理后。

在纱线中,概念虽然有点不同。

答案 2 :(得分:2)

reducer是您正在编写(或重用)处理数据的代码。

reduce任务是在群集中的节点上运行的reducer代码的实际实例化。此任务具有状态机,可能会失败。如果发生故障,则会启动另一个reduce任务以重新启动计算。这称为reduce task attempts 。重新开始计算的次数有限(&#34;最大尝试次数&#34;)。

您可以配置n reducers(如reduce任务中),这是在作业执行的任何时间点可能发生的最大并行reduce任务量(预留推测执行)。