zoukankan      html  css  js  c++  java
  • 关于mapreduce过程中出现的错误:Too many fetch-failures

    Reduce task启动后第一个阶段是shuffle,即向mapfetch数据。每次fetch都可能因为connect超时,read超时,checksum错误等原因而失败。Reduce task为每个map设置了一个计数器,用以记录fetchmap输出时失败的次数。当失败次数达到一定阈值时,会通知JobTracker fetchmap输出操作失败次数太多了,并打印如下log

    Failed to fetch map-output from attempt_201105261254_102769_m_001802_0 even after MAX_FETCH_RETRIES_PER_MAP retries... reporting to the JobTracker

    其中阈值计算方式为:

    max(MIN_FETCH_RETRIES_PER_MAP,

    getClosestPowerOf2((this.maxBackoff * 1000 / BACKOFF_INIT) + 1));

    默认情况下MIN_FETCH_RETRIES_PER_MAP=2 maxBackoff=300 BACKOFF_INIT=4000因此默认阈值为6,可通过修改mapred.reduce.copy.backoff参数来调整。

    当达到阈值后,Reduce task通过umbilical协议告诉TaskTrackerTaskTracker在下一次heartbeat时,通知JobTracker。当JobTracker发现超过50%Reduce汇报fetch某个map的输出多次失败后,JobTrackerfailed掉该map并重新调度,打印如下log

    "Too many fetch-failures for output of task: attempt_201105261254_102769_m_001802_0 ... killing it"

    针对于我所出错的原因其实就是网络不通,还有一些情况就是计算效率不匹配的问题,因为目前我的集群中只有两台测试机,一台真机一台虚拟机,所以也存在计算资源不匹配的问题

    但是我在mapreduce的过程中ping ipaddr 发现ip不通 所以不断报告警告错误

  • 相关阅读:
    vmware虚拟机迁移系统到其它磁盘(xjl456852原创)
    值得思考的
    OS X系统特有文件目录说明
    计算机组成原理语言层级
    PC启动过程详解
    对大学计算机培养方案路线回顾
    Django学习笔记(二)App创建之Model
    Django学习笔记 (一) 开发环境配置
    HTML的发展历史
    如何设置MySql Server远程访问(Debian Linux)
  • 原文地址:https://www.cnblogs.com/wq920/p/3279681.html
Copyright © 2011-2022 走看看