这几天看《hadoop技术内幕》种关于mapreduce的书,董西城著的,所以想编译下hadoop-1.0.0,弄了2天,最终成功了,所以把经验分享下。
1、下载hadoop-1.0.0.tar.gz。不知道可以从哪里下,搜的是csdn上别人上传的,还化了2C币
2、安装eclipse,去下载最新版直接装就是了,我的是java-oxygen版。
3、安装ant。去apacheant官网下最新的tar文件就是了。
4、解压下载的hadoop-1.0.0.tar.gz源文件到某个目录下,我就直接在~/Downloads了。
5、打开eclipse。选择File->new->Project->JavaProject,要选到hadoop源代码解压的目录,比如我的是~/Downloads/hadoop-1.0.0。建好后点Finish完成。
6、配置eclipse让它能够找到编译代码需要的Ant库。选中刚建立的javaproject项目,点右键,选择BuildPath->Configure Build Path。在弹出的对话框左边找到JavaBuild path,右边选"Libraies",下面的列表框里面应该有出错的项(前面有红叉叉的),选择“ANT_HOME/lib/ant.jar”,点“Edit”,创建变量ANT_HOME(在接下来第一个对话框里单击‘Variable’,在第二个对话框里单击"New"按钮),其值为Ant的安装目录。
7、在项目目录下,打开shell,输入anteclipse。这里可能会出错,应该缺少.eclipse.templates,所以可以用svn进行安装。svn的地址是http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.0.0,连接之后里面有.eclipse.templates,把它下载下来放到源文件目录下即可。再次输入anteclipse。可以成功了!
8 eclipse里进行编译,有可能报错。我这里有2个错误。
一个是src/contrib/gridmix/src/java下Gridmix.java里的代码的错误。我把出错的<地方<? extends T>改为了<?>
另一个是src/contrib/gridmix/src/test下TestRandomAlgorithm.java里不能解析com.sun.tools,这是因为java里的JDK中的tools.jar没加进编译环境里。需要进入BuildPath->Configure Build Path把这个jar加进去。
9 eclipse里编译,可以成功!