1. 下载apache ant压缩包,解压到D盘
2. 配置ant环境变量
ANT_HOME = D:\apache-ant-1.8.4
在path环境变量后追加 %ANT_HOME%\bin
3. 下载hadoop-1.0.4.tar.gz,解压到D盘
4. 修改%HADOOP_HOME%\src\contrib\下的build-contrib.xml文件:
在<projectname="hadoopbuildcontrib"xmlns:ivy="antlib:org.apache.ivy.ant">下添加
<property name="eclipse.home" location="Eclipse的安装路径>
<property name="version" value="1.0.4"/>
5. 修改%HADOOP_HOME%\src\contrib\eclipse-plugin下的build.xml文件:
在<pathid="eclipse-sdk-jars">下添加
<fileset dir=" ../../../"><include name="hadoop*.jar"/></fileset>
6. 把commons-cli-1.2.jar与拷到%HADOOP_HOME%\build\ivy\lib\Hadoop\common\下,将hadoop-core-1.0.4.jar拷到%HADOOP_HOME%\build下
7. 在%HADOOP_HOME%\src\contrib\eclipse-plugin目录下shift+鼠标右键,选择在此处打开命令窗口,输入ant jar,执行命令
8. 等待命令行提示BUILDSUCCESSFUL,编译成功后会在%HADOOP_HOME%\build\contrib\eclipse-plugin目录下生成hadoop-eclipse-plugin-1.0.4.jar文件。(注意:这个文件目前还不能用,如果放到eclipse的plugins目录下会有异常发生,当打开Map/Reduce Location视图添加hadoop location的时候会报这个异常:Map/Reducelocation status updater".org/codehaus/jackson/map/JsonMappingException)下面的步骤就是解决这个异常
9. 将%HADOOP_HOME%\lib目录下的如下jar文件添加到hadoop-eclipse-plugin-1.0.4.jar的lib目录下(可用压缩工具打开)jackson-core-asl-1.8.8.jar, jackson-mapper-asl-1.8.8.jar, commons-configuration-1.6.jar, commons-lang-2.4.jar,commons-httpclient-3.0.1.jar
10. 将hadoop-eclipse-plugin-1.0.4.jar文件中的META-INF/MANIFEST.MF解压出来,修改这个文件的Bundle-ClassPath: classes/,lib/hadoop-core.jar 为
Bundle-ClassPath:classes/,lib/hadoop-core.jar,lib/jackson-core-asl-1.8.8.jar ,lib/jackson-mapper-asl-1.8.8.jar, lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar, lib/commons-httpclient-3.0.1.jar
11. 然后将修改后的MANIFEST.MF替换hadoop-eclipse-plugin-1.0.4.jar中的META-INF/MANIFEST.MF文件
12. 修改完毕后的hadoop-eclipse-plugin-1.0.4.jar即为最终可以使用的文件。将这个文件放到eclipse的plugins目录下,重启eclipse,配置你的Map/ReduceLocation,就可以用eclipse访问hadoop和新建Map/Reduce Project了
参考:http://logicmd.net/2012/08/how-to-compile-hadoop-1-0-3/
9-11步骤参考 http://cloudfront.blogspot.com/2012_07_01_archive.html
最新更新,打包的时候还需要注意一下eclipse版本问题
eclipse3.5及以上版本运行,需要做个修改。修改方法如下:
编辑:src\contrib\eclipse-plugin\src\java\org\apache\hadoop\eclipse\launch\HadoopApplicationLaunchShortcut.java
做如下修改:
//import org.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLaunchShortcut;
import org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut;
修改完毕后在hadoop目录执行ant package重新打包eclipse插件。
3.5一下版本将以上两个交换一下