# bin/hadoop jar hadoop-*-examples.jar wordcount /test1 /test2
11/11/22 20:42:33 INFO input.FileInputFormat: Total input paths to process : 14
11/11/22 20:42:33 INFO mapred.JobClient: Running job: job_201111222034_0001
11/11/22 20:42:34 INFO mapred.JobClient: <wbr>map 0% reduce 0%<br>
11/11/22 20:45:07 INFO mapred.JobClient: <wbr>map 14% reduce 0%<br>
11/11/22 20:45:43 INFO mapred.JobClient: <wbr>map 14% reduce 4%<br>
11/11/22 20:45:54 INFO mapred.JobClient: <wbr>map 28% reduce 4%<br>
11/11/22 20:46:43 INFO mapred.JobClient: <wbr>map 57% reduce 4%<br>
11/11/22 20:46:52 INFO mapred.JobClient: <wbr>map 85% reduce 4%<br>
11/11/22 20:46:55 INFO mapred.JobClient: <wbr>map 92% reduce 4%<br>
11/11/22 20:46:58 INFO mapred.JobClient: <wbr>map 100% reduce 4%<br>
11/11/22 20:56:19 INFO mapred.JobClient: Task Id : attempt_201111222034_0001_m_000002_0, Status : FAILED<br>
Too many fetch-failures<br>
11/11/22 20:56:19 WARN mapred.JobClient: Error reading task outputConnection refused<br>
11/11/22 20:56:19 WARN mapred.JobClient: Error reading task outputConnection refused<br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
一、错误分析
Reduce task启动后第一个阶段是shuffle,即向map端fetch数据。每次fetch都可能因为connect超时,read超时,checksum错误等原因而失败。Reduce
task为每个map设置了一个计数器,用以记录fetch该map输出时失败的次数。当失败次数达到一定阈值时,会通知JobTracker
fetch该map输出操作失败次数太多了,并打印如下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协议告诉TaskTracker,TaskTracker在下一次heartbeat时,通知JobTracker。当JobTracker发现超过50%的Reduce汇报fetch某个map的输出多次失败后,JobTracker会failed掉该map并重新调度,打印如下log:
"Too many fetch-failures for output of task: attempt_201105261254_102769_m_001802_0 ... killing it"
二、出错原因及更正:
很可能是节点间的联通不够全面.
<wbr><wbr></wbr></wbr>
1) 检查 、/etc/hosts
<wbr><wbr><wbr>要求本机ip 对应 <wbr>服务 <wbr>器名<br><wbr><wbr><wbr>要求要包含所有的服务器ip + 服务器名</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
本人使用的是虚拟机OS为:ubuntu11.04 ,重启系统后出现该错误,最后发现ubuntu系统在每次启动时,会在/etc/hosts文件最前端添加如下信息:
127.0.0.1 localhost
<wbr><wbr><wbr><wbr>your_hostname</wbr></wbr></wbr></wbr>
::1
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>localhost6 <wbr><wbr>your_hostname</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
若将这两条信息注销掉,(或者把your_hostname删除掉)上述错误即可解决。
2) 检查 .ssh/authorized_keys
<wbr><wbr><wbr>要求包含所有服务器(包括其自身)的public key</wbr></wbr></wbr>
<wbr></wbr>尽管我们在安装hadoop之前已经配置了各节点的SSH无密码通信,假如有3个IP分别为192.168.128.131
<wbr>192.168.128.132 <wbr>192.168.133 ,对应的主机名为master 、 slave1 、 slave2 。从每个节点第一次执行命令$ ssh
<wbr>主机名(master 、slave1 、slave2) 的时候,会出现一行关于密钥的yes or no ?的提示信息,Enter确认后再次连接就正常了。如果我们没有手动做这一步,如果恰好在hadoop/conf/core-site.xml 及 mpred-site.xml中相应的IP 用主机名代替了,则很可能出现该异常。</wbr></wbr></wbr>
分享到:
相关推荐
NULL 博文链接:https://bupt04406.iteye.com/blog/1965950
资源来自pypi官网。 资源全名:git-fetch-gitignore-0.0.2.tar.gz
Android-react-native-fetch-blob.zip,致力于使文件访问和数据传输对react本地开发人员更容易、更高效的项目。,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上...
安装$ npm install --save make-fetch-happen 目录例子const fetch = require ( 'make-fetch-happen' ) . defaults ( { cacheManager : './my-cache' // path where cache will be written (and read)} )fetch ( '...
在mysql数据库连接时碰到Warning: mysql_fetch_array() expects …错误提示,根据我的经验这个是sql返回的query为空了,我们没有加己判断直接使用了. mysql_fetch_array()函数导致的,下面我们一起来看问题解决方案,我...
$ npm install --save make-fetch-happen 目录 fetch.defaults minipass-fetch选项 make-fetch-happen选项 opts.cacheManager opts.cache opts.proxy opts.noProxy opts.ca, opts.cert, opts.key opts....
没有fetch模拟可以轻松地用于react-native。 因此,我自己创建一个。 要求 Nodejs> = 12.x 路线图 与Mock.js结合 支持排除其他途径 其他API服务器的代理 全局和特定路径的延迟 支持灵活回退到网络( ) 支持...
送纸器 使用feedr从远程url获取数据,尊重其缓存并解析其数据。 尽管它的名字,它不仅用于提要数据,而且还包括所有可以提要它的数据(包括二进制数据)。 安装 安装: npm install --save feedr ...
Failed to fectch URl ... 安装使用SDK Manager更新时出现问题 Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-6.xml, reason: Connection to https://dl-ssl.google.co
fetch-with-loadingfetch-with-loading 是一个带有 loading 的 promise 扩展特点使用方便,没有 API,仅仅是对默认请求的扩展提示可以自定义内容和样式,灵活快捷支持其他 promise 请求库,如 axios无任何依赖,非常...
redux-fetch-middleware 用于redux的中间件,可帮助从rest API中获取数据并简化请求流程。 很多时候,我们只需要执行一些简单的请求,但是我们需要跟踪请求状态,该中间件将自动分派3个状态。 改变plesae参见 在...
如何使用fetch-retry是一个下拉更换为fetch : const fetch = require ( '@vercel/fetch-retry' ) ( require ( 'node-fetch' ) )module . exports = async ( ) => { const res = await fetch ( '...
RPC: https://rpc-fetchhub.fetch-ai.com : https://rpc-fetchhub.fetch-ai.com Fetch.ai主网 在启动Fetch.ai时,将与FET ERC-20令牌具有完全的令牌互操作性。 最初,两个网络之间的传输将由保管网桥进行调解,...
npm install @vespaiach/axios-fetch-adapter 有两种使用方法: 创建一个新的Axios实例并在配置中传递此适配器 const instance = axios.create({ baseURL: 'https://some-domain.com/api/', timeout: 1000, ...
前端项目-fetch-jsonp,Fetch JSONP like a boss using Fetch API
JavaScript - Fetch实现短信验证码注册登录完整示例:JavaScript - Fetch.js和附件说明
npm i --save fetch-stringify 用法 require ( 'fetch-polyfill' ) ; //use IE8+ polyfill require ( 'fetch-stringify' ) ; var qs = require ( 'qs' ) ; var qsStringify = function ( body ) { //default to use...
web-report是一种浏览器端页面性能,ajax,fetch,错误信息,资源性能上报SDK,资源小巧,性能强悍 上报sdk有五种 一:所有类型通用的上报SDK即:web-report-default.js 二:针对于使用Jquery ajax的上报SDK即:web-...
cd use-fetch-hook 或者 HTTPS: git clone https://github.com/ooade/use-fetch-hook.git cd use-fetch-hook 在本地运行 启动实时重新加载开发服务器: yarn start 如有任何疑问,请随时!
从 CDN 中 grunt-fetch-from-cdn 这个 grunt 插件可以从 CDN 获取单个文件(比如 jquery.js)。 与 bower 不同,它只获取单个文件而不是整个项目。入门这个插件需要 Grunt ~0.4.4 如果您以前没有使用过 ,请务必查看...