编译自己的Hadoop Eclipse插件

编译自己的Hadoop Eclipse插件

1.准备和说明

  虽然大家现在能下载到各种版本对应的插件,但是自从0.2版本之后hadoop就不提供新版本的插件了,现在看到的插件都是别人编译好的。为什么要这样呢?其实仔细想想这样做确实是个不错的注意,hadoop本身是开源的,经常有人会按自己的需求拿他定制,这样来说每个人的hadoop都是不一样的,所以针对自己的hadoop来编译一个属于自己的插件,这样在eclipse和hadoop的匹配过程中,就不会造成一些奇怪的错误啦。

 

   相信你看这篇文章肯定是要在Eclipse下运行Hadoop了,可以参考我的文章 《在Windos上使用Eclipse进行Hadoop开发的环境搭建》

   此时保证你已经在Windows上有和你Linux中安装的hadoop版本相一致的hadoop了哦

 

 

2.文件转移到Eclipse中进行编译

2.1 新建一个JAVA工程,名字随意

2.2 COPY东西过去

      F:\hadoop-0.20.205.0\src\contrib   将这个目录下面的eclipse-plugin目录全部拷贝进刚才建的JAVA工程中

      F:\hadoop-0.20.205.0\src\contrib   将这个目录下面的build-contrib.xml 拷贝到刚才建的JAVA工程中的eclipse-plugin中

 

 

 

2.3 修改build.xml和build-contrib.xml

  现在这2个文件都已经在Eclipse中了 直接打开修改

 

---------------build.xml-------------------

将<import file="../build-contrib.xml"/>改为<import file="build-contrib.xml"/>

 

 

--------------build-contrib.xml------------------------

 

  <property name="hadoop.root" location="F:/hadoop-0.20.205.0"/>
  <property name="eclipse.home" location="E:/Develpment Tools/eclipse"/>
  <property name="version" value="0.20.205.0"/>

 

2.4 再拷贝一些文件

  在hadoop解压目录下复制两个jar,没有目录就新建这些目录。分别是:

\hadoop-core-0.20.205.0.jar 复制到 \build\hadoop-core-0.20.205.0.jar

\lib\commons-cli-1.2.jar复制到\build\ivy\lib\Hadoop\common\commons-cli-1.2.jar

复制好了结果如下图所示

 

2.5 使用ant进行编译

右键build.xml选择run as ant   

 

 

2.6 查看编译后的文件

3.收尾工作

3.1 COPY一些JAR

  本来这样就已经好了,但是这样直接运行的话,还是会少类的,所以我们直接打开这个插件JAR,然后

将/lib目录下的

commons-configuration-1.6.jar 

commons-httpclient-3.0.1.jar

 commons-lang-2.4.jar

 jackson-core-asl-1.8.8.jar 

jackson-mapper-asl-1.8.8.jar

这5个包复制到这个插件的的lib目录下(用压缩软件打开JAR拖进去就行)

 

 

3.2 编辑MANIFEST.MF

 

--------------MANIFEST.MF------------------------

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.7.0_17-b02 (Oracle Corporation)
Bundle-ManifestVersion: 2
Bundle-Name: MapReduce Tools for Eclipse
Bundle-SymbolicName: org.apache.hadoop.eclipse;singleton:=true
Bundle-Version: 0.18
Bundle-Activator: org.apache.hadoop.eclipse.Activator
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,org.eclipse.core.runtime,org.eclipse.jd
 t.launching,org.eclipse.debug.core,org.eclipse.jdt,org.eclipse.jdt.co
 re,org.eclipse.core.resources,org.eclipse.ui.ide,org.eclipse.jdt.ui,o
 rg.eclipse.debug.ui,org.eclipse.jdt.debug.ui,org.eclipse.core.express
 ions,org.eclipse.ui.cheatsheets,org.eclipse.ui.console,org.eclipse.ui
 .navigator,org.eclipse.core.filesystem,org.apache.commons.logging
Eclipse-LazyStart: true
Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-httpclient-3.0.1.jar,lib/jackson-core-asl-1.0.1.jar,lib/jackson-mapper-asl-1.0.1.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar
Bundle-Vendor: Apache Hadoop

 

 

 

至此,编译插件的所有工作全部完成。有问题欢迎留言探讨。

posted @ 2013-04-18 13:43  KaimingWan  阅读(441)  评论(0编辑  收藏  举报