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

 更新时间:2021年06月20日 17:00:48   作者:yoyo929  
今天给大家带来的是关于Java的相关知识,文章围绕着Hadoop运行时遇到java.io.FileNotFoundException错误展开,文中有非常详细的解决方法,需要的朋友可以参考下

报错信息:

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、重启电脑。(一定要重启)

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

在这里插入图片描述

到此这篇关于Hadoop运行时遇到java.io.FileNotFoundException错误的解决方法的文章就介绍到这了,更多相关Hadoop运行错误内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解jvm对象的创建和分配

    详解jvm对象的创建和分配

    这篇文章主要介绍了jvm对象的创建和分配的相关资料,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • Java function函数式接口的使用方法与实例

    Java function函数式接口的使用方法与实例

    这篇文章主要介绍了Java function函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感与艺术的抽象融为一体,悄然重构了开发者对代码之美的认知,需要的朋友可以参考下
    2025-02-02
  • 详解mybatis如何实现进行分表

    详解mybatis如何实现进行分表

    在数据库设计中,分表是一种常见的优化策略,它可以将一个大表拆分成多个小表,以提高查询性能和存储效率,下面我们就来学习一下mybatis如何实现进行分表吧
    2023-11-11
  • Java 线程池详解

    Java 线程池详解

    本文给大家总结了java中的线程池的相关问题,非常的详细也很实用,有需要的小伙伴可以参考下。
    2016-03-03
  • 单台Spring Cloud Eureka升级到三台Eureka高可用集群

    单台Spring Cloud Eureka升级到三台Eureka高可用集群

    今天小编就为大家分享一篇关于单台Spring Cloud Eureka升级到三台Eureka高可用集群,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • IDEA如何切换JDK版本

    IDEA如何切换JDK版本

    本文主要介绍了IDEA如何切换JDK版本,JDK版本之间的关系是一个向后兼容的关系,所以我们需要切换JDK的版本号,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Java中List<T>和List<?>的区别详解

    Java中List<T>和List<?>的区别详解

    这篇文章主要介绍了Java中List<T>和List<?>的区别详解。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • ActiveMQ整合Spring入门用法解析

    ActiveMQ整合Spring入门用法解析

    这篇文章主要介绍了ActiveMQ整合Spring入门用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • SpringBoot应用自定义logback日志详解

    SpringBoot应用自定义logback日志详解

    默认情况下,SpringBoot内部使用logback作为系统日志实现的框架,将日志输出到控制台,不会写到日志文件。本篇文章主要讲解下如何自定义logabck.xml以及对logback文件中配置做一个详解,需要的可以参考一下
    2022-10-10
  • Java+opencv3.2.0实现重映射

    Java+opencv3.2.0实现重映射

    这篇文章主要为大家详细介绍了Java+opencv3.2.0实现重映射的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02

最新评论