当前位置:   article > 正文

新手写hadoop代码遇到的UnsatisfiedLinkError、IO、FileNotFoundException问题_caused by: java.io.filenotfoundexception: java.io.

caused by: java.io.filenotfoundexception: java.io.filenotfoundexception: had

系统环境

window10 64位+hadoop 2.10.1 +IntelliJ IDEA 2020.3.1 x64
说明:在对文件里的内容进行统计时,接连报了好几个问题,搞到凌晨1点多都没有解决好,求一个新手的心里阴影面

报错信息

1、FileNotFoundException

Caused by: java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems
Caused by: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.
	at org.apache.hadoop.util.Shell.checkHadoopHomeInner(Shell.java:454)
  • 1
  • 2
  • 3

2、IOException

Exception in thread "main" java.io.IOException: Cannot run program "E:\大数据开发工具\hadoop-2.10.1\bin\winutils.exe": CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息,然后联系软件发布者。
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at org.apache.hadoop.util.Shell.runCommand(Shell.java:925)
  • 1
  • 2
  • 3

3、UnsatisfiedLinkError

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
  • 1

解决方法

在网上搜了一些解决方法,大致分为三类
1、在hadoop的bin目录下下载相应的hadoop.dll、hdfs.dll、winutils.exe,并将hadoop.dll放在c:\windows\system32 下的、重起IDEA即可。
这里方法没有成功
2、手工加载hadoop.dll

  public static void main(String[] args) throws InterruptedException, IOException, ClassNotFoundException {

         //手动加载hadoop.dll解决nativeio.NativeIO$Windows.access0错误
        **System.load("E:\\大数据开发工具\\hadoop-2.10.1\\bin\\hadoop.dll");**
        //一、初始化一个JOB
        Configuration configuration = new Configuration();
        Job job = Job.getInstance(configuration,"WordCount");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3、直接修改相应的源码
修改方式见参考资料中的网址**,本人没有验证过**

最终是采用第二种方案解决了该问题。
说明 :本机上已经安装好hadoop,设置HADOOP环境变量并加载入的系统PATH路径里去

总结与思考

1、新手遇到问题解决起来太费时间了,但收获也在于此
2、第三类解决方式直击问题本身,后面应该尝试修改源码
3、网上有很多的解决方法,但错误是自己经历的,应该记下来
4、这里没有找到hadoop2.10.1对应的hadoop.dll、hdfs.dll、winutils.exe三个文件,我是使用的2.9.2版本,有需要的网友可以留言
5、没有搞懂为什么了官网的hadoop2.10.1源码包没有包含上面三个文件

参考资料

https://www.cnblogs.com/jhxxb/p/10723369.html
https://www.cnblogs.com/duking1991/p/6111490.html
https://blog.csdn.net/weinichendian/article/details/72960220

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/892019
推荐阅读
相关标签
  

闽ICP备14008679号