重新配置hadoop-0.21.0-eclipse-plugin.jar
0.简介
在
CentOS6.2系统中的eclipse配置Hadoop开发环境,发现hadoop-0.21.0-eclipse-plugin.jar这个插件不可用,究其原因是插件的配置和正在使用的eclipse-3.6.1这个版本不协调,故设法重新配置此插件.........
1.存在的问题
按照在linux中eclipse插件的一般安装方法:将hadoop-0.21.0mapredsrccontribeclipse-plugin目录下的hadoop-0.21.0-eclipse-plugin.jar这个文件放入eclipse中相应的目录(如plugins目录或者dropins目录)下就可以使用了。
但事实并没这么顺利!即使这样放好了,但是根本没法使用。
存在的典型问题有:
(1)找不到Map/Reduce这个图标
(2)出现Map/Reduce图标后点击New
Hadoop Location没有反应。
这大致是插件版本与使用的eclipse版本不协调的问题,这样就要重新配置插件了.........
2.问题的表象
具体的问题出在这里:
.../hadoop-0.21.0/mapred/src/contrib/eclipse-plugin/META-INF/MANIFEST.MF文件配置不正确,并且插件中缺少文件。
Manifest-Version: 1.0
Ant-Version: Apache Ant
1.7.1
Created-By: 14.0-b16 (Sun
Microsystems Inc.)
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
Bundle-Vendor: Apache
Hadoop
在linux中鼠标右击hadoop-0.21.0-eclipse-plugin.jar文件,选择Open
with Archive Manager,打开后可以看到:

进入lib目录后你会发现目录中的文件与文件/META-INF/MANIFEST.MF
Bundle-ClassPath这一项描述的内容存在明显的不符。
文件中描述的是:Bundle-ClassPath:
classes/,lib/hadoop-core.jar,而/lib/目录下的文件如上图所示,只有commons-cli-1.2.jar文件和hadoop-common.jar文件,不存在描述的hadoop-core.jar文件!!
3.解决的方法
大致说来就是:修改/META-INF/MANIFEST.MF文件的Bundle-ClassPath描述和添加/删除必要的正确的Jar包到/lib/目录中去。
(1)用Archive
Manager工具向/lib/目录添加/删除文件
删除/lib/目录下的hadoop-common.jar文件;
将.../hadoop-0.21.0/目录下的12个Jar包加入到lib目录中;
将.../hadoop-0.21.0/lib/目录下的log4j-1.2.15.jar文件加入到lib目录中。
(2)/META-INF/MANIFEST.MF文件的Bundle-ClassPath描述重新编写如下:
Bundle-ClassPath:
classes/,lib/commons-cli-1.2.jar,lib/hadoop-common-0.21.0.jar,lib/hadoop-common-test-0.21.0.jar,lib/hadoop-hdfs-0.21.0.jar,lib/hadoop-hdfs-0.21.0-sources.jar,lib/hadoop-hdfs-ant-0.21.0.jar,lib/hadoop-hdfs-test-0.21.0.jar,lib/hadoop-hdfs-test-0.21.0-sources.jar,lib/hadoop-mapred-0.21.0.jar,lib/hadoop-mapred-0.21.0-sources.jar,lib/hadoop-mapred-examples-0.21.0.jar,lib/hadoop-mapred-test-0.21.0.jar,lib/hadoop-mapred-tools-0.21.0.jar,lib/log4j-1.2.15.jar
(3)说明:
/hadoop-0.21.0/目录下的12个Jar包中不必全部都加入到lib目录中去,原有的hadoop-common.jar也可以不删除,但是要保证lib目录下必须含有以下5个文件即可,当然相应的描述文件也要修改!
commons-cli-1.2.jar
hadoop-common-0.21.0.jar
hadoop-hdfs-0.21.0.jar
hadoop-mapred-0.21.0.jar
log4j-1.2.15.jar

更新好hadoop-0.21.0-eclipse-plugin.jar文件后大小大概是9.2MB.
我配置好的插件下载地址:配置后的hadoop-0.21.0-eclipse-plugin.jar
【9.2MB】 再将此文件放入centos6.2中自带的eclipse安装目录/usr/share/eclipse/dropins下即可使用。
4.小结
系统中的Archive
Manager工具用起来很方便,如此一来就不用解压JAR包和反解压JAR包了,带来了很大的方便。如果是别的系统或者是没有Archive
Manager工具就得参考别的方法使用JAR包了,但是知道了问题的根本原因那么用什么工具就是次要的了。
<!-- 正文结束 -->
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21458995/viewspace-1120272/
,如需转载,请注明出处,否则将追究法律责任。