Hadoop运行时遇到java.io.FileNotFoundException错误的解决方法

作者:yoyo929 时间:2021-11-04 11:19:45 

报错信息:


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,再点击确定;

Hadoop运行时遇到java.io.FileNotFoundException错误的解决方法

3、打开用户账户,双击;

4、输入您想要改的名字;

5、点击右下角的【确定】按钮之后,弹出警告,点击【是】即可。

6、重启电脑。(一定要重启)

重新启动,发现新上传的这里也改了。

Hadoop运行时遇到java.io.FileNotFoundException错误的解决方法

来源:https://blog.csdn.net/weixin_43718641/article/details/117907516

标签:Hadoop,运行错误
0
投稿

猜你喜欢

  • Java并发编程示例(八):处理线程的非受检异常

    2022-03-23 14:15:57
  • android串口开发入门之搭建ndk开发环境及第一个jni调用程序

    2023-03-14 16:54:55
  • Spring Boot用户注册验证的实现全过程记录

    2023-01-03 01:58:34
  • Android自定义圆形倒计时进度条

    2021-09-11 06:17:08
  • Android之PreferenceActivity应用详解

    2023-03-28 14:26:37
  • DataGridView冻结列或行、列顺序调整、操作行头列头标题的方法

    2021-10-25 06:53:41
  • C#/Java连接sqlite与使用技巧

    2021-07-10 08:34:05
  • Java VisualVM监控远程JVM(详解)

    2022-07-10 15:59:15
  • Java8深入学习系列(一)lambda表达式介绍

    2021-08-20 11:23:19
  • Android客户端post请求服务器端实例

    2022-10-10 23:49:43
  • springboot中.yml文件参数的读取方式

    2021-06-20 00:57:51
  • Spring+SpringMVC+MyBatis深入学习及搭建(一)之MyBatis的基础知识

    2021-09-27 15:12:59
  • Android实现计步器功能

    2023-12-24 14:06:21
  • Android递归方式删除某文件夹下的所有文件(.mp3文件等等)

    2022-06-05 06:43:46
  • Java实现动态获取图片验证码的示例代码

    2023-07-24 22:32:05
  • C#遍历指定目录下所有文件的方法

    2021-08-29 05:52:44
  • Android平台基于Pull方式对XML文件解析与写入方法详解

    2021-07-21 01:52:52
  • java isInterrupted()判断线程的实例讲解

    2023-07-21 01:45:53
  • 解析java中super的用法分析

    2021-11-17 19:39:52
  • java 动态生成SQL的实例讲解

    2021-05-25 18:26:06
  • asp之家 软件编程 m.aspxhome.com