编译自己的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
至此,编译插件的所有工作全部完成。有问题欢迎留言探讨。