`
srz007
  • 浏览: 5199 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Hadoop 0.21.0 Eclipse plugin相关

阅读更多
全部弄好可以在eclipse 3.6下正常跑的包在这里下载
  Hadoop当前最新的版本是0.21.0,安装运行等等参照说明文档都没问题,唯独需要开发其上面的应用时需要hadoop-0.21.0-eclipse-plugin.jar,产生了一系列问题,经过网上搜及自己摸索,现已解决,记录在此。
  由于Hadoop的Eclipse插件作者比较懒(暂且这么想吧),Hadoop0.21.0发行版中的hdoop-0.21.0-eclipse-plugin.jar是只针对较低版本的Eclipse的,至少在最新版的Eclipse(3.6)中加载会直接报错,这种情况下,需要自己使用\hadoop-0.21.0\mapred\src\contrib\eclipse-plugin中的源代码进行修改并重新编译。需要修改的文件如下
\hadoop-0.21.0\mapred\src\contrib\eclipse-plugin\src\java\org\apache\hadoop\eclipse\launch\HadoopApplicationLaunchShortcut.java

//import org.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLaunchShortcut;
import org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut;


\hadoop-0.21.0\mapred\src\contrib\build-contrib.xml
26行处添加本机的Eclipse的目录,如
<property name="eclipse.home" location="H:/Program Files/eclipse"/>

按理说这样就可以直接编译了,下载最新版本的ant(1.8.2),到
\hadoop-0.21.0\mapred\src\contrib\eclipse-plugin\
下直接执行ant test,会发现报错,说缺少hadoop的common和hdfs俩部分组件,原因在于这两个依赖包的网络服务器地址已经失效了,解决办法也很简单,自己在本地建立一个目录,如
C:\hadoop\
在其中放置上述两个依赖包及pom文件,我打好一个包放在附件中(hadoop.rar)供参考,最后修改
\hadoop-0.21.0\mapred\src\contrib\eclipse-plugin\ivysettings.xml

<property name="snapshot.apache.org" value="https://repository.apache.org/content/repositories/snapshots/" override="false">

修改为
<property name="snapshot.apache.org" value="file:/c:/hadoop" override="false">

\hadoop-0.21.0\mapred\src\contrib\eclipse-plugin\build.xml
62行添加
includeantruntime="false"

\hadoop-0.21.0\mapred\
下面添加lib目录并把hadoop-mapred-0.21.0.jar拷贝到此目录中


再次进行编译(ant test)就可以通过了,然后通过ant package编译打包,就可以得到jar文件,在这个过程中又会提示一些错误,按照提示信息拷贝相应的jar包到相应的目录下即可。

至此打出来的jar包依然是有问题的!
这个jar包和发行版中自带的hadoop-0.21.0-eclipse-plugin.jar都有相同的问题,就是被eclipse加载后,无法添加loaction,需要向jar包内lib目录中添加
hadoop-hdfs-0.21.0.jar
hadoop-mapred-0.21.0.jar
log4j-1.2.15.jar
修改jar包内META-INF目录中的MANIFEST.MF
Bundle-ClassPath: classes/,lib/commons-cli-1.2.jar,lib/hadoop-common.jar,lib/hadoop-hdfs-0.21.0.jar,lib/hadoop-mapred-0.21.0.jar,lib/log4j-1.2.15.jar

经过上述折腾,总算得到能用的插件包了,由此可以理解Hadoop为什么版本号更新的如此之慢了
分享到:
评论
2 楼 heqiuxiang 2012-05-12  
 
1 楼 albb0608 2011-11-06  
太好了,十分感谢

相关推荐

Global site tag (gtag.js) - Google Analytics