编译 Hadoop 源代码是每个接触 Hadoop 人的心愿吧
平台环境
- Win7
- Eclipse Helios
- Ant-1.7
- SVN
- Hadoop-eclipse-plgin
- Hadoop-1.0.4
目录结构
- eclipse目录 F:\eclipse
- eclipse工程目录 F:\workspace
- hadoop安装目录 F:\workspace\hadoop-1.0.4
Step1 导入工程
经验证,直接导入 hadoop-1.0.4.tar.gz 工程会有很多不必要的麻烦,推荐从 SVN 上导入
资源库 URL: http://svn.apache.org/repos/asf/hadoop/common/tags,选择 release-1.0.4 检出为项目 release-1.0.4
Step2 设置 eclipse 中 hadoop 安装目录
Windows—>Preferences—>Hadoop Map/Reduce
- Hadoop installation directory: F:\workspace\hadoop-1.0.4
Step3 build.xml
因为 Windows 无法在 cmd 中运行 shell 脚本(安装 cygwin 也没用),所以需要做以下注释
<!— 1.注释掉下面,否则报错误 "package-info.java:5: 未结束的字符串字面值" —>
<exec executable="sh">
<arg line="src/saveVersion.sh ${version} ${build.dir}"/>
</exec>
<!— 2.注释掉所有带 "autoreconf" 的 <exec> 标签,因为 Windows 下无法执行 autoreconf 命令(在 cygwin 中安装了 autoconf, automake, libtool也没用)"—>
Step4 Gridmix.java
修改 release-1.0.4/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/Gridmix.java:
将两处 Enum<? extends T> 改为 Enum<?>
Step5 Ant 编译
- 右键 MapReduceTools 工程,Properties—>Builders—>New—>Ant Builder
- New_Builder—>Edit:
- Name (见名知意): hadoop-1.0.4_Builder
- Main—>Buildfile (build.xml的位置): F:\workspace\release-1.0.4\build.xml
- Targets—>Manual Build: jar
- Project—>Build Project
编译成功会输出 BUILD SUCCESSFUL ^^
在 F:\workspace\release-1.0.4\build 文件夹下会生成三个开发 jar 包:
- hadoop-client-1.0.4-SNAPSHOT.jar
- hadoop-core-1.0.4-SNAPSHOT.jar
- hadoop-minicluster-1.0.4-SNAPSHOT.jar
去掉"-SNAPSHOT"即可替换 F:\workspace\hadoop-1.0.4 下的同名 jar 包