[英]hadoop: difference between 0 reducer and identity 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.