Hadoop Eclipse 插件编译安装

最近开始学习Hadoop,hadoop 的新版本为了能和各个eclipse 的版本兼容,因此只提供了源代码,开发人员需要手动编译。
hadoop eclipse 插件的源代码位于$HADOOP_HOME/src/contrib/eclipse-plugin 下面。
如果只想单独编译hadoop 的ecliose 插件那么需要修改该目录下面的build.xml 文件
下面是我的一个配置文件,大家可以根据自己的环境修改,编译过程需要用到eclipse的目录以及hadoop的lib下面的相关jar文件,所以需要在此配置,注意改成你的hadoop所对应的版本。

Xml代码
01 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
02 <project default="jar" name="eclipse-plugin">
03   <property name="name" value="${ant.project.name}"/>
04   <property name="root" value="${basedir}"/>
05   <property name="hadoop.root" location="/home/chengxw/hadoop-1.2.0"/>
06   <property name='version' value='1.2.0'/>
07   <property name='eclipse.home' location='/home/chengxw/soft/eclipse'/>
08   <property name="build.dir" location="${hadoop.root}/build/contrib/${name}"/>
09   <property name="build.classes" location="${build.dir}/classes"/>
10   <property name="src.dir"  location="${root}/src/java"/>
11    
12   <path id="eclipse-sdk-jars">
13     <fileset dir="${eclipse.home}/plugins/">
14       <include name="org.eclipse.ui*.jar"/>
15       <include name="org.eclipse.jdt*.jar"/>
16       <include name="org.eclipse.core*.jar"/>
17       <include name="org.eclipse.equinox*.jar"/>
18       <include name="org.eclipse.debug*.jar"/>
19       <include name="org.eclipse.osgi*.jar"/>
20       <include name="org.eclipse.swt*.jar"/>
21       <include name="org.eclipse.jface*.jar"/>
22       <include name="org.eclipse.team.cvs.ssh2*.jar"/>
23       <include name="com.jcraft.jsch*.jar"/>
24     </fileset>
25   </path>
26   <!-- Override classpath to include Eclipse SDK jars -->
27   <path id="classpath">
28    <fileset dir="${hadoop.root}">
29     <include name="*.jar"/>
30    </fileset>
31     <path refid="eclipse-sdk-jars"/>
32   </path>
33  
34  <target name="compile">
35   <mkdir dir="${build.dir}/classes"/>
36        <javac
37      encoding="ISO-8859-1"
38      srcdir="${src.dir}"
39      includes="**/*.java"
40      destdir="${build.classes}"
41      debug="on"
42      deprecation="off">
43      <classpath refid="classpath"/>
44     </javac>
45   </target>
46   <!-- Override jar target to specify manifest-->
47   <target name="jar" depends="compile">
48     <mkdir dir="${build.dir}/lib"/>
49     <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
50     <copy file="${hadoop.root}/lib/commons-cli-1.2.jar"  todir="${build.dir}/lib" verbose="true"/>
51     <copy file="${hadoop.root}/lib/commons-configuration-1.6.jar"  todir="${build.dir}/lib" verbose="true"/>
52     <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"  todir="${build.dir}/lib" verbose="true"/>
53     <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/>
54     <copy file="${hadoop.root}/lib/commons-lang-2.4.jar"  todir="${build.dir}/lib" verbose="true"/>
55     <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/>
56     <jar
57       jarfile="${build.dir}/hadoop-${name}-${version}.jar"
58       manifest="${root}/META-INF/MANIFEST.MF">
59       <fileset dir="${build.dir}" includes="classes/ lib/"/>
60       <fileset dir="${root}" includes="resources/ plugin.xml"/>
61     </jar>
62   </target>
63 </project>



然后执行 ant jar
编译后的文件位于:$HADOOP_HOME/build/contrib/eclipse-plugin 下面

这时候插件还不能使用,还需要修改 jar 文件中的 META-INF/MANIFEST.MF文件

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


修改为:

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


大家注意这些jar 文件的版本和你的hadoop 中的版本对应。

将编译后的hadoop-eclipse-plugin-1.2.0.jar 文件,复制到eclipse 的 plugins 下面即可。

 

原文地址:http://my.oschina.net/cxw1990/blog/131872

posted @   skyme  阅读(225)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2012-07-06 什么时候才应该使用HBase?
点击右上角即可分享
微信分享提示