折腾了大半个晚上终于部署成功了,比在Linux上面稍微复杂一点,详细步骤如下:
1) jdk、ant、hadoop环境变量配置
2) 分别将hadoop-2.5.2.tar.gz、hadoop-2.5.2-src.tar.gz、hadoop2x-eclipse-plugin、hadoop-common-2.2.0-bin下载解压到D:\profession\hadoop目录下
3) 修改hadoop-eclipse-plugin-2.5.2.jar配置
修改D:\profession\hadoop\hadoop2x-eclipse-plugin-master\ivy\libraries.properties
hadoop.version=2.5.2
jackson.version=1.9.13
4) ant编译hadoop-eclipse-plugin-2.5.2.jar
D:\profession\hadoop\hadoop2x-eclipse-plugin-master\src\contrib\eclipse-plugin>
ant jar -Dversion=2.5.2 -Declipse.home= D:\profession\eclipse -Dhadoop.home= D:\profession\hadoop\hadoop-2.5.2
编译好后hadoop-eclipse-plugin-2.5.2.jar会在D:\profession\hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin目录下
(注意:会有警告信息,提示缺少jar包,导入即可)
5) 将编译好的hadoop-eclipse-plugin-2.5.2.jar拷贝至eclipse的plugins目录下,然后重启eclipse。
(注:如在左边project中看到DFS Locations,即表示eclipse成功识别,有些eclipse版本必须在Java EE版本下才能识别)
6) Window--Preference--Hadoop Map/Reduce进行配置,
7) 显示Hadoop连接配置窗口:Window--ShowView--Other-MapReduce Tools
8) 配置连接Hadoop,如下图所示:
9) 点击左侧的DFS Locations,如能看到user,表示安装成功
10) hadoop集群环境添加测试文件,使用上面的input.txt文件
11) 新建项目File--New--Other--Map/Reduce Project 命名为MR1,
然后创建org.apache.hadoop.examples.WordCount,从hadoop-2.5.2-src中拷贝覆盖(\hadoop-2.5.2-src\hadoop-mapreduce-project\hadoop-mapreduce-examples\src\main\java\org\apache\hadoop\examples)
12) 配置windows下运行环境,
需hadoop.dll,winutils.exe
直接拷贝D:\profession\hadoop\hadoop-common-2.2.0-bin-master\bin目录下此2项内容覆盖D:\profession\hadoop\hadoop-2.5.2\bin
13) 配置运行参数
点击WordCount.java,右键,点击RunAs—>Run Configurations,配置运行参数,即输入和输出文件夹
hdfs://hadoop:9000/user/hadoop/inputhdfs://hadoop:9000/user/hadoop/output02
14) 运行程序
Run as application/Run as hadoop
15)错误集锦
1. Q: An internal error occurred during: "Map/Reduce locationstatus updater".
java.lang.NullPointerException
A:把eclipse切换到Java EE版本即可
2. Q:WARN hdfs.DFSClient:DataStreamer Exception: org.apache.hadoop.ipc.RemoteException:java.io.IOException: File /user/root/input01/file01 could only be replicated to0 nodes, instead of 1
A:这是由于没有添加节点的原因,即datanode没有启动成功
3. Q: java.io.IOException: Cannot run program "D:/java" (indirectory"C:/Users/administrator/.net.sf.jadclipse/1372683520891"):
A:JadClipse没有配置好,下载jad.exe,Windows ->Preferences -> Java -> JadClipse选项, 在path todecomplier: 文本框中写入D:/java/jad.exe(先前下载jad.exe的路径)
4. Q: java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)
A:hadoop-common-2.2.0-bin-master下的bin的hadoop.dll放到C:\Windows\System32下,然后重启电脑,也许还没那么简单,还是出现这样的问题。Windows的唯一方法用于检查当前进程的请求,在给定的路径的访问权限,所以我们先给以能进行访问,我们自己先修改源代码,return true 时允许访问。我们下载对应hadoop源代码,hadoop-2.5.2-src.tar.gz解压,hadoop-2.5.2-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio下NativeIO.java 复制到对应的Eclipse的project,然后修改570行为return true如图所示:16)感想
遇到异常问题,不急不躁,仔细分析,如果时间允许,可以重新捋一遍或者暂时去干点别的事,也许猛然之间你就知道自己错在哪了