A-A+

编译hadoop生成eclipse插件

2015年09月14日 Hadoop 暂无评论 阅读 1,423 views 次

这个问题困扰我很久,今天做一记录。

这里我要重点讲讲hadoop的eclipse插件的制作。我最早安装hadoop版本是0.20.2其目录/contrib/eclipse-plugin下存在hadoop-0.20.2-eclipse-plugin.jar,因此如果你搭建的hadoop是0.20.2,那么在eclipse进行配置,那么是可以使用的,但是如果搭建的是其它版本的hadoop,安装不对应的插件到eclipse里面后是没办法正常使用,下面介绍hadoop的eclipse 插件生成的技术。

hadoop1使用Ant编译,hadoop后改为Maven编译。

所以下载解压hadoop,安装JDK,你还要安装Ant。

Hadoop的eclipse插件包含在hadoop的安装包(这个安装包是指包含源程序的安装包,不是指二进制的安装包),如下图(Windows下目录,如果是Linux,$HADOOP_HOME/src/contrib/eclipse-plugin下)所示:

1

首先要改下相关的配置文件:

第一个配置文件:E:\tools\hadoop-1.1.2\src\contrib\eclipse-plugin\build.xml

<target name="jar" depends="compile" unless="skip.contrib">下面加入:

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

在build.xml文件里我们发现,它还依赖:E:\tools\hadoop-1.1.2\src\contrib\ build-contrib.xml文件,在该文件里我们也要做相应的修改,这个修改很简单,修改这个配置即可:

<property name="hadoop.root" location="E:\tools\hadoop-1.1.2"/>

Location指向你本地安装的hadoop路径。

还有个文件要做相应的修改,文件路径是:

E:\tools\hadoop-1.1.2\src\contrib\eclipse-plugin\META-INF\MANIFEST.MF,

修改的选项是Bundle-ClassPath:下面的内容,我的修改是:

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

这样所有的配置都配好了,下面我们使用ant命令来生成eclipse插件,首先我们要打开命令行的操作界面,使用cmd开启,如果将路径定位到E:\tools\hadoop-1.1.2\src\contrib\eclipse-plugin\,输入如下命令:

ant –Declipse-home= E:\tools\eclipse  -Dversion=1.1.2

运行成功后,就会在 E:\tools\hadoop-1.1.2\src\contrib\eclipse-plugin目录下生成eclipse插件的jar包,我们将生成的jar包复制到E:\tools\eclipse\plugins文件夹下,重新启动eclipse,插件就安装成功了,该插件的目的是本地编写的mapreduce程序可以远程调用集群上的hadoop应用。

Copyright © 风恋尘香 保留所有权利.   Theme  Ality

用户登录