繁体   English   中英

reduce任务和reducer之间的区别

[英]Difference between reduce task and a reducer

“减速器不同于减少任务。减速器可以运行多个减少任务”。 有人可以用下面的例子来解释这个吗?

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

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

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

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

Reduce任务是节点上运行的程序,它正在执行Reducer类的reduce函数。

您可以将Reduce任务视为Reducer的一个实例

有关更多详细信息,请查看Apache MapReduce教程页面( Payload部分)。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM