• MapReduce设置参数防止超时


    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");                        //不检查超时
  • 相关阅读:
    移动web开发之flex布局(弹性布局)
    移动web开发之流式布局
    移动端基础
    3D变形(CSS3) transform
    动画(CSS3) animation
    2D变形(CSS3) transform
    过渡(CSS3)
    CSS精灵技术(sprite)
    字体图标
    伸缩布局(CSS3)
  • 原文地址:https://www.cnblogs.com/aprilrain/p/2944400.html
Copyright © 2020-2023  润新知