最近因为研究需要,需要修改hadoop源码 这里记录将hadoop源码导入eclipse完整过程:
1:前提要求
1.0 系统为centos6.5 hadoop 为1.2.1
1.1 java
这个不用说了,必须的,在1.3 ant 中会用到 主要是配置JAVA_HOME
1.2 svn
svn第一次接触不太懂这东西,签出hadoop源码用的,我直接百度的svn,安装完毕。
从官网找hadoop的源码URL:我签出的是1.2.1版本,在tags目录下有hadoop的所有发布版本!
http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.2.1/
1.3 ant
这个也是第一次接触,ant就是java版本的makefile,不是太懂 下载解压缩,需要运行build.sh脚本。如果之前没有设置JAVA_HOME路径 这时就会报错。
2:配置过程
2.1 切换到hadoop源码包根目录,(ant 过程需要联网,ant会自动分析依赖关系,自动从网上下载缺失的文件)
# ant (用makefile 的观点来看,就是自动编译一遍)
2.2
# ant eclipse (同理 编译eclipse,不知道java这个怎么说)
然后就可以用eclipse打开了
结果如下图所示:
3:问题总结:
没有遇到很大的问题。之前尝试了在eclpise中下载svn插件,结果编译报错,按照网上的教程修改build.xml 中的eclipse路径,同样不行,后来直接敲命令完成。
建议编译的时候出现问题,可以多看看build.xml文件,相当于Makefile文件,应该可以找到问题原因。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面介绍下对hadoop-2.4.1的源码编译过程:有很大一部分同上面讲述一样,所以尽量简写
1:前提要求
1.0 系统为centos6.5 hadoop 为2.4.1
1.1 java
这个不用说了,必须的,
1.2 svn
svn第一次接触不太懂这东西,签出hadoop源码用的,我直接百度的svn,安装完毕。
从官网找hadoop的源码URL:迁出hadoop-2.4.1,在tags目录下有hadoop的所有发布版本!
http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.2.1/
1.3 maven
hadoop-2.0之后使用maven来管理项目,不再使用ant 所以需要maven 。maven网上很多随便下载一个 然后解压,配置路径即可
1.4 protocbuf
这个是hadoop底层RPC中用来定义结构的。如果没有这个会报错。同maven 一样,网上很多,这个下载解压之后要安装,然后配置路径即可。
2:编译过程
2.1 使用控制台编译。maven编译规则是根据pom.xml来的。如果想编译hadoop中的项目 则只需要在控制台中输入
mvn package -Pdist -DskipTests -Dtar
耐心等待:就编译好了,编译得到的jar等都在targets目录下,可以耐心寻找
下图是编译完毕的截图
2.2 eclipse编译
也可以用eclipse来编译hadoop源码,需要安装eclipse的maven插件。不过我尝试了好多种方法都没有安装成功,幸好发现myeclipse自带了maven插件于是改用了myeclise
在导入myeclipse之前需要先生成eclipse模块 切换到hadoop源码目录 执行如下命令
mvn install -DskipTests
mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true 这样就可以导入myeclipse了
然后就可以用myeclipse来修改源码了 在编译的时候,单击Run->Run Configure 打打开运行配置界面,新建maven配置,在Goals中 输入同控制台一样的参数 就可以运行了。会在myeclipse控制台下看到输出的结果
配置页面如下: