root@ubuntu:/usr/local/hadoop# 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: map 0% reduce 0%
11/11/22 20:45:07 INFO mapred.JobClient: map 14% reduce 0%
11/11/22 20:45:43 INFO mapred.JobClient: map 14% reduce 4%
11/11/22 20:45:54 INFO mapred.JobClient: map 28% reduce 4%
11/11/22 20:46:43 INFO mapred.JobClient: map 57% reduce 4%
11/11/22 20:46:52 INFO mapred.JobClient: map 85% reduce 4%
11/11/22 20:46:55 INFO mapred.JobClient: map 92% reduce 4%
11/11/22 20:46:58 INFO mapred.JobClient: map 100% reduce 4%
11/11/22 20:56:19 INFO mapred.JobClient: Task Id : attempt_201111222034_0001_m_000002_0, Status : FAILED
Too many fetch-failures
11/11/22 20:56:19 WARN mapred.JobClient: Error reading task outputConnection refused
11/11/22 20:56:19 WARN mapred.JobClient: Error reading task outputConnection refused
一、错误分析
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"
二、出错原因及更正:
很可能是节点间的联通不够全面.
1) 检查 、/etc/hosts
要求本机ip 对应 服务 器名
要求要包含所有的服务器ip + 服务器名
本人使用的是虚拟机OS为:ubuntu11.04 ,重启系统后出现该错误,最后发现ubuntu系统在每次启动时,会在/etc/hosts文件最前端添加如下信息:
127.0.0.1 localhost your_hostname
::1 localhost6 your_hostname
若将这两条信息注销掉,(或者把your_hostname删除掉)上述错误即可解决。
2) 检查 .ssh/authorized_keys
要求包含所有服务器(包括其自身)的public key
尽管我们在安装hadoop之前已经配置了各节点的SSH无密码通信,假如有3个IP分别为192.168.128.131 192.168.128.132 192.168.133 ,对应的主机名为master 、 slave1 、 slave2 。从每个节点第一次执行命令$ ssh 主机名(master 、slave1 、slave2) 的时候,会出现一行关于密钥的yes or no ?的提示信息,Enter确认后再次连接就正常了。如果我们没有手动做这一步,如果恰好在hadoop/conf/core-site.xml 及 mpred-site.xml中相应的IP 用主机名代替了,则很可能出现该异常
相关推荐
然而,具体`git-fetch-gitignore`库提供了哪些函数和功能,以及如何使用,需要查看其官方文档或解压`git-fetch-gitignore-0.0.2`这个压缩包,查看其中的`README`、`setup.py`等文件,或者直接在Python环境中运行`...
安装$ 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 ( '...
当组件的props或其他影响数据请求的因素发生变化时,`vue-fetch-data`会智能地检测这些变化并重新执行`fetch`方法以获取最新数据。 7. **与Vuex的整合**: 如果你的项目使用了Vuex管理状态,`vue-fetch-data` 也...
8. **错误处理**:无论是axios还是fetch-jsonp,都应该对可能的错误进行处理,通常通过`.catch()`方法捕获并显示错误信息,或者在组件中显示加载失败的提示。 9. **数据渲染**:获取到的数据可以作为props传递给子...
在“fetch-jsonp”项目中,Fetch API被扩展以支持JSONP,这意味着开发者可以享受到Promise的链式调用、错误处理等优点,同时实现跨域数据获取。 在压缩包“fetch-jsonp-master”中,我们可能会找到以下几个关键文件...
3. **回调执行**:当脚本成功加载并评估后,`fetch-js` 提供了一个回调机制,允许开发者定义一个函数来处理脚本执行后的结果,确保脚本按预期运行。 4. **错误处理**:如果在加载或执行过程中发生错误,`fetch-js` ...
在mysql数据库连接时碰到Warning: mysql_fetch_array() expects …错误提示,根据我的经验这个是sql返回的query为空了,我们没有加己判断直接使用了. mysql_fetch_array()函数导致的,下面我们一起来看问题解决方案,我...
Android-react-native-fetch-blob.zip,致力于使文件访问和数据传输对react本地开发人员更容易、更高效的项目。,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上...
$ 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....
标题中的“Mirai_unidbg-fetch-qsign 签名服务安装器_管理器,已永久停更.zip”提到了几个关键元素,首先是“Mirai”,它可能是一个项目或者框架的名称,通常在IT领域中,这样的命名可能代表一个开源项目或者某种...
如何使用fetch-retry是一个下拉更换为fetch : const fetch = require ( '@vercel/fetch-retry' ) ( require ( 'node-fetch' ) )module . exports = async ( ) => { const res = await fetch ( '...
JavaScript中的Fetch API是一种现代的、基于Promise的网络请求方法,用于替代传统的XMLHttpRequest。这个示例将详细讲解如何使用Fetch API来实现短信验证码的注册和登录功能,这在Web开发中是一个常见的用户验证机制...
fetch-as-audio-buffer库利用fetch API获取音频资源,支持流式处理和更好的错误处理机制。 2. **响应解码**:在fetch请求成功后,库会将返回的Blob或ArrayBuffer数据解码为AudioBuffer。这是一个重要的步骤,因为...
没有fetch模拟可以轻松地用于react-native。 因此,我自己创建一个。 要求 Nodejs> = 12.x 路线图 与Mock.js结合 支持排除其他途径 其他API服务器的代理 全局和特定路径的延迟 支持灵活回退到网络( ) 支持...
送纸器 使用feedr从远程url获取数据,尊重其缓存并解析其数据。 尽管它的名字,它不仅用于提要数据,而且还包括所有可以提要它的数据(包括二进制数据)。 安装 安装: npm install --save feedr ...
**前端开源库-rdf-fetch-lite** 在Web开发领域,前端技术的发展日新月异,而RDF(Resource Description Framework)作为一种语义网标准,正在逐渐融入到现代Web应用中。`rdf-fetch-lite`是一个专为前端设计的轻量级...
fetch-with-loadingfetch-with-loading 是一个带有 loading 的 promise 扩展特点使用方便,没有 API,仅仅是对默认请求的扩展提示可以自定义内容和样式,灵活快捷支持其他 promise 请求库,如 axios无任何依赖,非常...
redux-fetch-middleware 用于redux的中间件,可帮助从rest API中获取数据并简化请求流程。 很多时候,我们只需要执行一些简单的请求,但是我们需要跟踪请求状态,该中间件将自动分派3个状态。 改变plesae参见 在...
npm install @vespaiach/axios-fetch-adapter 有两种使用方法: 创建一个新的Axios实例并在配置中传递此适配器 const instance = axios.create({ baseURL: 'https://some-domain.com/api/', timeout: 1000, ...