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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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?