博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MapReduce设置参数防止超时
阅读量:4935 次
发布时间:2019-06-11

本文共 775 字,大约阅读时间需要 2 分钟。

1. 如果碰到异常“Task attempt failed to report status for xxx seconds. Killing!”,最可能是碰到死循环了。

2. 如果没有死循环:控制超时的属性是:mapred.task.timeout,默认600000ms,即600s。可以设置成更大的值。可以直接在Jobconf或Configuration中修改(只对本Job起作用),也可以修改mapred-site.xml(对所有Job起作用)。

3. 如果没有死循环,但task执行时间长又不好确定,可以在Reducer或Mapper中主动发送心跳,但需控制发送心跳的频率:

long heartBeatInterval = 100000L;            //主动发心跳的间隔,100s,默认600s超时    long lastProgressTS = 0;                     //上一次发心跳的时间点            //主动发心跳    if (System.currentTimeMillis() - lastProgressTS > heartBeatInterval) {        context.progress();        lastProgressTS = System.currentTimeMillis();    }

4. 再次,如果对自己的程序有信心不会出现死循环,可以采用更简单的办法:

conf.set("mapred.task.timeout", "0");                        //不检查超时

 

 

转载于:https://www.cnblogs.com/aprilrain/archive/2013/03/05/2944400.html

你可能感兴趣的文章
安装Python3.6.2报错:zipimport.ZipImportError: can't decompress data; zlib not available
查看>>
【蓝桥杯】入门训练 Fibonacci数列
查看>>
实验十 指针2
查看>>
常见HTTP状态码
查看>>
vim 空格和换行的删除和替换
查看>>
ionic 入门学习
查看>>
[python]pickle和cPickle
查看>>
末日了,天是灰色的。
查看>>
Vuejs vm对象详解
查看>>
自定义RatingBar的一个问题(只显示显示一个星星)
查看>>
剑指Offer--二叉树的镜像
查看>>
PAT-BASIC-1031-查验身份证
查看>>
Python笔记5----集合set
查看>>
连连看小游戏
查看>>
js二级联动
查看>>
谜题32:循环者的诅咒
查看>>
RMI
查看>>
动态切换多数据源的配置
查看>>
win7电脑调整分区后分区不见的文件寻回法子
查看>>
《第一行代码》学习笔记2-Android开发特色
查看>>