现在的位置: 首页 > 综合 > 正文

Hadoop-1.2.1 Eclipse开发环境配置

2013年12月25日 ⁄ 综合 ⁄ 共 2463字 ⁄ 字号 评论关闭

       记得早在Hadoop 0.20.2版本的时候,在$HADOOP_HOME/contrib/eclipse-plugin目录下直接就有一个hadoop-eclipse-luging-0.20.2.jar的包,我们只需要将这个包放到$ECLIPSE_HOME/plugins目录下,然后重启Eclipse即可。

       前一段换成了Hadoop 1.2.1版本,在搭建Eclipse环境的时候,发现没有这个包,但是在$HADOOP_HOME/src/contrib/eclipse-plugin目录下有这个jar包的源代码,从网上查询后才知道需要自己使用Ant来编译生成hadoop-eclipse-luging-1.2.1.jar。于是就搭建了Ant环境,通过查看$HADOOP_HOME/src/contrib/eclipse-plugin/build.xml知道,编译时需要传入几个参数,那么编译的命令如下:

ant -Declipse.home=/path/to/eclipse -Dversion=1.2.1 -Dcommons-cli.version=1.2

       但是在运行的过程中,却报了好多类和包找不到的错误。在网上查询答案时,发现大家的做法基本都是对build.xml文件做较多的修改,而且按照他们的办法我也没有运行成功。经过自己的摸索,加上一定的运气,我找到了如下的方法:

       1、在Hadoop根目录下也有一个build.xml,在此目录下执行命令:ant。Hadoop有篇Wiki上说是要在源码包的src目录下运行ant,在生成其他东西的过程中也会生成我们需要的hadoop-eclipse-luging-1.2.1.jar。我没有下载Hadoop的源码包,而是直接在Release包中运行的。(这一步的目的是为之后的编译配置环境,这一步会执行失败,但是不用管,我们需要的环境已经有了)

       2、$HADOOP_HOME/src/contrib/eclipse-plugin/build.xml中还是有个错误需要修改:

<copy file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/> 

       找到上面这行代码,将这行代码改为:

<copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>

       我们去掉了“build”,这可能是新版本的jar包位置发生改变,但是代码没有做相应的修改。

       经过测试,发现只做以上修改,只是能够生成jar包,但是放入Eclipse下之后发现不能用。网上搜索到的解决办法如下:

       在上面代码后加入如下的代码:

<copy file="${hadoop.root}/lib/commons-configuration-${commons-configuration.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-httpclient-${commons-httpclient.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/commons-lang-${commons-lang.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-core-asl-${jackson.version}.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/lib/jackson-mapper-asl-${jackson.version}.jar"  todir="${build.dir}/lib" verbose="true"/>

并在META-INF目录下的MANIFEST.MF文件中修改如下信息:

Bundle-ClassPath: classes/,
 lib/hadoop-core.jar

修改为:

Bundle-ClassPath: classes/,
 lib/hadoop-core.jar,
 lib/commons-cli-1.2.jar,
 lib/commons-configuration-1.6.jar,
 lib/jackson-core-asl-1.8.8.jar,
 lib/commons-httpclient-3.0.1.jar,
 lib/jackson-mapper-asl-1.8.8.jar,
 lib/commons-lang-2.4.jar

必须在这里修改,亲测在生成后的jar包中修改无效,貌似会破坏jar包的校验值。

       3、修改完文件后保存退出,然后在$HADOOP_HOME/src/contrib/eclipse-plugin目录下执行:

ant -Declipse.home=/path/to/eclipse -Dversion=1.2.1 -Dcommons-cli.version=1.2

然后就可以在$HADOOP_HOME/build/contrib/eclipse-plugin目录下看到hadoop-eclipse-luging-1.2.1.jar,将这个jar包放入$ECLIPSE_HOME/plugins,重启Eclipse即可创建MapReduce Project。


抱歉!评论已关闭.