Windows下的 Eclipse上调试Hadoop2的代码出现的一系列错误
一、出现以下错误:
很多同学也配置了jdk的环境变量,那么这样的错误是怎样产生的呢?
原因是:
hadoop是java开发的,所以hadoop需要依赖jdk的,这个错误是hadoop找不到jdk的环境变量JAVA_HOME
解决方法:
将hadoop和jdk安装在同一个目录下即可解决。
二、出现以下错误:
原因是:
官网下载的hadoop的bin目录下是没有winutils.exe文件的
解决方法:
下载winutils.exe和hadoop.dll放在hadoop的bin下重启eclipse或者idea即可解决。
下载地址,链接已失效,课件获取文件:
https://pan.baidu.com/s/1YzFyo6rzH5BMroOy2FdjwA
提取码回复:“我要提取码”
三、出现以下错误:
Exceptioninthread"main"java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
原因是:
C:\Windows\System32下缺少hadoop.dll
解决方法:
将hadoop的bin下的hadoop.dll再往C:\Windows\System32下拷贝一份重启eclipse或者idea即可解决。
如果经历以上步骤之后还是第三个错误。
分析错误:
错误指向的是hadoop的源码NativeIO.java的606行代码。
Windows的唯一方法用于检查当前进程的请求,在给定路径的访问权限,所以我们可以给予能访问的权限,可以在当前工程中临时先修改源代码,return true 时允许访问。
解决错误:
1.鼠标点击错误中的(NativeIO.java:606)会跳转到源码类中。
2.查看NativeIO.java的包package路径,在当前工程建立相同的package。
3.将源码NativeIO.java拷贝到步骤2建立的工程中。
4.找到错误提示的代码处,606行进行如下修改,即可解决。
//return access0(path, desiredAccess.accessRight());
returntrue;
vip解答服务的流程:
报名vip学习之后,通过售后老师加上解答微信或者QQ。
学习过程中遇到问题,在解答微信或者解答QQ进行文字、语音、图片等形式发来你的问题。
解答时间:每天的中午1:30到晚上的11:00,其余时间有问题的同学留言,看到会直接回复的。
解答方式:文字、语音、图片、远程操作你的电脑等方式。
领取专属 10元无门槛券
私享最新 技术干货