题记:每次干一件事儿就像打仗似的,编译个插件也花了我一天的时间,虽然有几个钟头在帮一个初中生做数学题。又是东找西找,看的一头雾水,最后还是一点一点试。
环境:
OS:win7 x64
Eclipse Java EE IDE for Web Developers:Juno Service Release 1
(4.2)
JDK:1.7.0_11
Hadoop:1.0.4
编译记录:
1. 在eclipse里新建一个Java
Project,名字如hadoop-1.0.4-eclipse-plugin;
2.
下载并解压hadoop-1.0.4.tar.gz,将解压目录里srccontribeclipse-plugin下所有文件和srccontrib目录下的build-contrib.xml拖拽到项目中,将hadoop解压目录下的所有jar文件拖拽到eclipse项目中bin目录下。
3. 修改Project中的build-contrib.xml文件:
找到 ,
4. 修改Project中的build.xml文件:
在里如下图加入includeantruntime="on"
在中如下图添加:
5.
在hadoop的解压目录下,复制两个jar文件,如果没有目录就在解压目录中新建这些目录,分别是:hadoop-core-1.0.4.jar
到
uildhadoop-core-1.0.4.jar;libcommons-cli-1.2.jar到uildivylibHadoopcommoncommons-cli-1.2.jar
6. 在META-INF下的MANIFEST.MF文件中按如下添加:
Bundle-ClassPath: classes/,
7. 右击build.xml选择 Run As Ant
Build,编译成功,生成的hadoop-1.0.4-eclipse-plugin.jar在hadoop解压目录uildcontribeclipse-plugin下面。
8.
把hadoop-1.0.4-eclipse-plugin.jar文件放到eclipse安装目录的plugins中,重启eclipse,会在Window→Open
Perspective→Other里,看到大象图标的Map/Reduce出现。我原本生成的jar文件名是hadoop-eclipse-plugin-1.0.4.jar,这个放进去重启eclipse没有反应,于是改成了如上的名字,就能直接看到了,中间版本号是可变的,其他的顺序可能是固定的。悲催的是,当我换装了Juno
SR2的版本,hadoop-eclipse-plugin-1.0.4.jar这个文件名也木有问题哦。
后记:以上方法在本尊的电脑上试验成功,不代表在亲的电脑上一样哦~~~还是一句话,要成功,请多方参考,况且这只是编译,我还没试过使用jar包呢。
2013年4月18日记:试了好多次,都没办法正常的使用这个编译的插件,总是出现Connecting to
DFS失败的错误提示,说缺少StringUtils.class,但事实上jar包里是有的。不过渐渐地发现eclipse有个问题,好比说,我一开始使用了1.0.4版本的hadoop插件,后来更换了1.0.3版本,eclipse就没办法再认出来。后来我换成了eclipse3.7.2(indigo)和hadoop1.0.0,插件是别人编译的。但是第一次使用的插件包是没有configuration等几个jar文件的,这个报错无可厚非,后来更换了完整的jar包,仍然报同样的错误"Connecting
to DFS hadoop".
org/apache/commons/configuration/Configuration。所以我重新捣腾了eclipse,换了个workspace的地方,让所有的配置回归本原,再用后来的插件包,总算是成功了。可惜,我在eclipse4.2(Juno)和hadoop1.0.4上用同样的方法没有成功,还是说缺少StringUtils.class。