折腾了大半个晚上最终部署成功了,比在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)感想

遇到异常问题,不急不躁,细致分析,假设时间同意,能够又一次捋一遍或者临时去干点别的事,或许猛然之间你就知道自己错在哪了


posted on 2017-04-17 10:57  ycfenxi  阅读(184)  评论(0编辑  收藏  举报