分享

mr任务数量求解

evababy 发表于 2017-1-20 14:09:37 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 8951
跪求,在线等MR从hbase读取数据,splits共114个,当job用114执行时,有的JOB跑后,貌似从未完成的JOB进行分裂出Rack-local map tasks,实际job数量远远超出114个,比如执行完成4个JOB,那么系统在新创建出4个JOB完成原有110个JOB。这样导致业务错误,如果关闭这项功能呢?就像按照每个JOB跑,慢是可以接受的!!

已有(4)人评论

跳转到指定楼层
nextuser 发表于 2017-1-20 14:33:10
没搞明白。这个数量是确定的,不会完成之后,在新建。
回复

使用道具 举报

evababy 发表于 2017-1-20 15:10:33
nextuser 发表于 2017-1-20 14:33
没搞明白。这个数量是确定的,不会完成之后,在新建。

确实发生了,114个再跑,每个60-70M的数据,后台已经看到日志,完成4个后,产生了新的4个job:115、116、117、118,他们的数据量30M左右,也有从hbase查询段落的日志,看情况就是从未完成的某一个分离出来的。
回复

使用道具 举报

evababy 发表于 2017-1-20 15:14:34
我的问题解决了,和本帖问题其实是两回事。
是用到mapreduce.task.id做标识了,由于出现任务重试的情况,产生ID不唯一的情况,使用mapreduce.task.attempt.id解决了问题。

本贴的情况,可能MR就这机制,帮助其他JOB完成任务,应该有参数控制
回复

使用道具 举报

evababy 发表于 2017-2-3 09:52:56
本帖的问题解决了,是mr对拖尾任务的优化策略,系统判定有拖尾任务存在时,复制一个同样的task并行执行,当有一个并行任务执行完成后,kill掉另外一个,所以-status可能够看到kill task XXX,使用mapred.map.tasks.speculative.execution/mapreduce.map.speculative来关闭优化策略,
创建并行任务可能造成数据的重复加载(重复执行)等问题,应根据自身任务实际情况选择是否关闭此项功能。默认true
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条