同Windows编译Hadoop-eclipse-plugin-1.0.4.jar一样
1. apache ant压缩包,解压到D盘
2. 配置ant环境变量
ANT_HOME = D:\apache-ant-1.9.0
在path环境变量后追加 %ANT_HOME%\bin
在CMD命令窗中 ant -version,打印版本号,证明安装成功
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下,注意%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了