如果映射器在中途失败并且 Hadoop 重试该映射器,自定义计数器会发生啥

Posted

技术标签:

【中文标题】如果映射器在中途失败并且 Hadoop 重试该映射器,自定义计数器会发生啥【英文标题】:What Happens to custom Counters if Mappers fails in Midway and Hadoop re-tries that mapper如果映射器在中途失败并且 Hadoop 重试该映射器,自定义计数器会发生什么 【发布时间】:2018-03-26 09:51:46 【问题描述】:

我有一个映射器,它从数据库读取数据并使用“读取数”计数器和“已处理记录”计数器更新计数器。如果映射器在两者之​​间失败可能是由于没有足够的资源来运行,那么计数器会发生什么?是复位吗? 就我而言,数据非常庞大,大约有 4000 万条记录。花了 3 天和 92 退出完成,但在作业运行期间,计数器是好的,但当它终止时,计数器的值减半,无法理解请帮助。

【问题讨论】:

【参考方案1】:

每个任务计数器(mapper 或 reducer)都与任务尝试相关,因此当任务尝试失败(由于 bug / IO 问题)或终止(推测执行)时,相关计数器将被删除。

【讨论】:

以上是关于如果映射器在中途失败并且 Hadoop 重试该映射器,自定义计数器会发生啥的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop:在迭代映射作业之间维护内存缓存

如何在hadoop中组合两个独立映射器的结果?

如何在MR作业中配置映射以批量执行?

将为 hive 中的分区表创建多少个映射器和化简器

从文件中为hadoop中的映射器创建自定义键值

使用自动映射器映射对象列表