2009-07-28

使用Eclipse3.4编译部署Hadoop/Hbase工程时需要修正的BUG

Posted in Java, FreeBSD/Unix服务器 at 22:06 Author:仲远

标签:

最近我们在通过使用Eclipse3.4版来开发部署Hadoop的工程以及Hbase的工程。不过首要条件是需要先将Hadoop在本地部署起来。在本地下载部署Hadoop源代码的时候,需要注意几点:

1、Hadoop需要在Linux/Unix下进行工程部署

如果打算在Windows下使用Eclipse来部署Hadoop工程,需要安装Linux虚拟环境。所以还是建议直接在Linux下使用Eclipse部署Hadoop。

2、添加两个software update
http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/
http://download.eclipse.org/technology/subversive/0.7/update-site/

3、SVN库的地址应该为:
Hadoop: http://svn.apache.org/repos/asf/hadoop/common
而不是:http://svn.apache.org/repos/asf/hadoop/core/
否则SVN库解析的时候总是出错

HBase的SVN库为:http://svn.apache.org/repos/asf/hadoop/hbase

4、Eclipse3.4版与Hadoop项目不兼容的Bug的解决方法
使用Eclipse3.4版为Hadoop工程Build Project的时候,可能会出错,提示“src\contrib\eclipse-plugin\src\java\org\apache\hadoop\eclipse\launch\HadoopApplicationLaunchShortcut.java
*:35: cannot find symbol ”,原因是Hadoop项目与Eclipse3.4有些不兼容。

解决办法是:修改src\contrib\eclipse-plugin\src\java\org\apache\hadoop\eclipse\launch\HadoopApplicationLaunchShortcut.java文件:

(1)将“import org.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLaunchShortcut;”改为“import org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut;”

(2)在“// Find an existing or create a launch configuration (Standard way)
     ILaunchConfiguration iConf =
         super.findLaunchConfiguration(type, configType);”之后,
同时是“ ILaunchConfigurationWorkingCopy iConfWC;
     try {”之前,添加一句代码:
“if (iConf == null) iConf = super.createConfiguration(type);”

改完之后的情况为:

ILaunchConfiguration iConf =
         super.findLaunchConfiguration(type, configType);

if (iConf == null) iConf = super.createConfiguration(type);
ILaunchConfigurationWorkingCopy iConfWC;
try {

……

5、在Eclipse中编译部署HBase需要修改的配置
右键单击HBase工程,并且选择”Properties->Java Build Path”,

(1)从Source tab中Remove所有item,然后使用”Add Folder”,添加”src/java”和”src/test”
(2)在Libraries tab中使用”Add Jars”,添加”lib”和”lib/jetty-ext”下所有jar包

接下来就可以正确Build HBase Project了。

本文可以自由转载,转载时请保留全文并注明出处:
转载自仲子说 [ http://www.wangzhongyuan.com/ ]
原文链接:

Leave a Comment

*
To prove you're a person (not a spam script), type the security text shown in the picture. Click here to regenerate some new text.
Click to hear an audio file of the anti-spam word