Hadoop运行时遇到java.io.FileNotFoundException错误的解决方法
作者:yoyo929 发布时间:2021-11-04 11:19:45
标签:Hadoop,运行错误
报错信息:
java.lang.Exception: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in localfetcher#1
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:529)
Caused by: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error in shuffle in localfetcher#1
at org.apache.hadoop.mapreduce.task.reduce.Shuffle.run(Shuffle.java:134)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:376)
at org.apache.hadoop.mapred.LocalJobRunner$Job$ReduceTaskRunnable.run(LocalJobRunner.java:319)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: G:/tmp/hadoop-Ferdinand%20Wang/mapred/local/localRunner/Ferdinand%20Wang/jobcache/job_local938878567_0001/attempt_local938878567_0001_m_000000_0/output/file.out.index
at org.apache.hadoop.fs.RawLocalFileSystem.open(RawLocalFileSystem.java:198)
at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:766)
at org.apache.hadoop.io.SecureIOUtils.openFSDataInputStream(SecureIOUtils.java:156)
at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:70)
at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:62)
at org.apache.hadoop.mapred.SpillRecord.<init>(SpillRecord.java:57)
at org.apache.hadoop.mapreduce.task.reduce.LocalFetcher.copyMapOutput(LocalFetcher.java:124)
at org.apache.hadoop.mapreduce.task.reduce.LocalFetcher.doCopy(LocalFetcher.java:102)
at org.apache.hadoop.mapreduce.task.reduce.LocalFetcher.run(LocalFetcher.java:85)
大概是说,reduce的过程失败了,错误发生在error in shuffle in localfetcher#1
,是因为找不到在tmp/hadoop-username目录下的一个文件导致。
原因:
电脑用户名含有空格
G:/tmp/hadoop-Ferdinand%20Wang/mapred/local/localRunner/Ferdinand%20Wang/jobcache/job_local938878567_0001/attempt_local938878567_0001_m_000000_0/output/file.out.index
到具体目录看果然找不到这个文件,问题就出在这个%20其实是空格,但是这里不允许出现空格。所以我们要修改用户名称才能解决这个问题。
虽然之前在hadoop-env.cmd
这个文件中修改了,用双引号的方式可以不出现空格可以让hadoop正常启动,但是治标不治本啊。还是修改一下用户名,改了以后这个就还是用username就可以。
@rem A string representing this instance of hadoop. %USERNAME% by default.
set HADOOP_IDENT_STRING=%USERNAME%
修改username的方法:
1、【win】+【R】快捷键调出运行;
2、输入netplwiz
,再点击确定;
3、打开用户账户,双击;
4、输入您想要改的名字;
5、点击右下角的【确定】按钮之后,弹出警告,点击【是】即可。
6、重启电脑。(一定要重启)
重新启动,发现新上传的这里也改了。
来源:https://blog.csdn.net/weixin_43718641/article/details/117907516


猜你喜欢
- 本文实例讲述了C#抓取当前屏幕并保存为图片的方法。分享给大家供大家参考。具体分析如下:这是一个C#实现的屏幕抓取程序,可以抓取整个屏幕保存为
- 为了解决在多个窗口之间的传值问题,我们可以通过设置静态类和静态变量的办法来实现窗口间值的传递窗体一代码//窗体1的代码using Syste
- Java音频播放,因为必须依赖到本地环境,所以JAVA在音频处理方面优势不大,或者说打从Java体系开发时就没太多的考虑音频播放
- 最近chatGPT也是非常的火爆,相信大家都看到了,现在提供一种Java调用chatGPT的方法,我们主要通过两个工具来实现,一就是http
- 一、定义泛型类void Main(){ //实例化泛型类时,才指定具体的类型 MyGen
- 一、封装封装:是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或
- 项目场景: 新搭了一个springboot 2.3.7.RELASE的框架,在集成mysql,tkMapper,mybatis的过
- 本文实例为大家分享了C#实现猜数字小游戏的具体代码,供大家参考,具体内容如下效果如图:代码:using System;using Syste
- /// 构造随机数 种子static int GetRandomSeed(){ &
- 工厂模式在Java应用程序中对象无处不在,这些对象都需要进行创建,如果创建的时候直接new对象,那么如果我们要更换对象,所有new对象的地方
- 一、Kt调用-Java参数非null的处理@NotNullclass TestJava { public void
- IDEA配置阿里规范插件P3C进入idea -》File -》 Settings -》Plugins到搜索框中搜索:Alibaba Java
- 前言上篇博文把表连接查询和三种对应关系的写法记录总结了,本篇要把 mybatis 中的动态sql 的使用以及缓存知识记录下来。动态SQL在解
- 一、ConcurrentLinkedQueue介绍并编程中,一般需要用到安全的队列,如果要自己实现安全队列,可以使用2种方式:方式1:加锁,
- 首先理解数据绑定为什么要使用数据绑定基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单:但我们提交后,为了将请求信
- 前言早就听说Go语言开发的服务不用任何架构优化,就可以轻松实现百万级别的qps。这得益于Go语言级别的协程的处理效率。协程不同于线程,线程是
- webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。概念性的东西就不说太多,下面开始创建一个简单的webservi
- 一.摘要emmmm..对springmvc不太熟练的情况下,如果不出意外的话,项目启动后出现404页面是很烦人。在这里,我记录一下可能会导致
- 把SpringBoot项目打包成Docker镜像有两种方案:全自动化:先打好docker镜像仓库,然后在项目的maven配置中配置好仓库的地
- 注:底色透明是否生效与android版本有关,版本过低设置无效1.在main.dart内设置void main(){ runApp(new