本文转载至:https://blog.csdn.net/wyxeainn/article/details/81413544
**开发环境:**win7与centos6.7-hadoop2.7.6
**错误原因:**windows编译的hadoop版本中,hadoop.dll,winutils版本与本地版的不一致,也有可能与开发时导入的jar包不一致
解决方案:
首先确定自己Windows下编译版本与开发版本一致,hadoop中的bin目录已经被windows下编译的hadoop合并(注意不是替换),有的覆盖,没有的留下,注意版本一致,确认一致后,如果依旧报异常,可以写一个静态代码块,强制读取hadoop.dll。
代码块
static {
System.load("D:\\hadoop-2.7.6\\bin\\hadoop.dll");
}
附上windows本地版安装教程教程
- 获得hadoop安装包,可以从官网下载,例如cenos-6.5-hadoop-2.6.4.tar.gz
- 获取windows编译的hadoop,只要有bin目录就行,可以下载源码包编译,也可以从网上下载。获取后检查bin目录,确认是否为windows编译,确认的标准就是有winutil。
- 将windows编译的hadoop合并到自己下载的hadoop目录,版本一定一致。
- 将hadoop.dll放入windows的system32文件夹下
- windows下配置环境变量,HADOOP_HOME和PATH
- 进入eclipse导入jar包,进行开发
- 直接在eclipse运行。
注意:此方法不同于利用利用类似于hadoop-eclipse-plugin-2.6.0.jar这种eclipse的插件。这种插件是可以远程连接到hadoop集群,方便于与hdfs交互,而上面提供的本地版方法,不用开启集群,是完全在windows测试使用。