win10上调试hadoop
-
首先找到对应的版本,比如我使用的时hadoop2.7.3,就可以直接用2.7.1版本的
-
配置文件:https://github.com/LUK-qianliu/winutils-master
目录下的hadoop.dll和winutils.exe复制到hadoop2.7.3/bin下:
-
将hadoop.dll复制到C:\Windows\System32下:
-
此时调试出现下面的bug:
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)
at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:609)
修改如下代码,注释了return access0(),改为return true:
public static boolean access(String path, NativeIO.Windows.AccessRight desiredAccess) throws IOException {
return true;
//return access0(path, desiredAccess.accessRight());
}
}
复制NativeIO方法(同时建立与源码相同的包结构):
运行代码,结果正常: