Windows下Cygwin环境的Hadoop安装- 在Eclipse中重新编译hadoop的jar包

来源:互联网 发布:阿里年会马云演讲全文 编辑:程序博客网 时间:2024/04/28 05:39

Windows下Cygwin环境的Hadoop安装- 在Eclipse中重新编译hadoop的jar包

 

转自:http://blog.csdn.net/liu_jason/article/details/7707472

 

在使用hadoop的过程中,不可避免地遇到一些问题需要对hadoop代码进行改进,这就要求我们必须建立一个可修改hadoop代码的开发环境,下面的过程,我们就来建立一个基于Eclipse的hadoop开发环境。

 

-  安装Ant

Hadoop的编译需要Ant的支持,从这里下载并安装最新的Ant:http://ant.apache.org/bindownload.cgi。

安装完成后,别忘了将Ant的bin目录路径加入到windows系统的PATH环境变量中。

- 安装TortoiseSVN

Hadoop代码是以SVN的形式存放在apache服务器上,因此我们需要先安装一个SVN客户端,我选用的是熟悉的TortoiseSVN。

从这里下载并安装最新的TortoiseSVN:http://tortoisesvn.net/downloads.html

- Checkout hadoop代码

在我们前面建立的代码目录D:\hadoop\code\common\chunk目录下,checkout hadoop代码。我选用的是1.0.3版本的hadoop,所以远程服务器代码的URL填入的是:http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.0.3/。

-  安装Eclipse

代码checkout完成后,就该安装Eclipse工具了。

从这里下载并安装EclipseClassic 4.2:http://www.eclipse.org/downloads/。

-  建立hadoop工程

在Eclipse中,点击File菜单的New->Java project,在打开的界面中输入以下信息:

 

然后点击Finish,即可导入我们已经checkout的hadoop基础组件代码。

导入完成后,你会看见左侧工程上会有很多小红叉,这是因为hadoop是需要用Ant进行编译,而不是java,所以我们要配置启用Ant编译:

* 左键点击common工程,选择Properties

* 选择左侧树形列表的Builders

* 点击右侧的New按钮,在弹出的对话框中选择AntBuilder,然后点击OK

 

 

* 在弹出的对话框中,将Name输入为:common_builder;并点击Browser File System按钮,选择D:\hadoop\code\common\chunk\build.xml文件

 

 

在点击上面的Target标签页,在第二项ManualBuild右侧点击SetTargets按钮,将原来的勾选去掉,选择jar选项,如下图:

 

然后点击OK按钮

* 在回到的对话框中再点击OK按钮,即可保存common_Builder编译器配置,然后将原来的Java Building下移并去掉勾选,如下图后点击OK即可:

 

 

回到eclipse视图,点击菜单项Project,去掉Build Automatically选项。

 

 

* 修改hadoop代码

为了解决在运行hadoop的wordcount程序遇到的“Failed to set permissions ofpath”错误问题,我们需要修改代码如下:

l      使用快捷键Ctrl+Shift+R,打开文件FileUtil.java

l      将checkReturnValue函数包含的代码注释掉

private static void checkReturnValue(boolean rv, File p,

                                      FsPermission permission

                                       ) throws IOException {

//    if (!rv) {

//      throw new IOException("Failed to setpermissions of path: " + p +

//                            " to " +

//                           String.format("%04o", permission.toShort()));

//    }

  }

- 编译hadoop程序

在菜单项windows->preferences->ant->Runtime->Classpath中,点击Add Jars,添加jdk目录下的\lib\tools.jar。

然后点击菜单项Project->Buildproject,等待编译完成。

- 使用编译后的代码

编译完成后,会看到Console输出中提示:

[jar] Building jar:D:\hadoop\code\common\chunk\build\hadoop-core-1.0.4-SNAPSHOT.jar

这就编译成功了,我们得到了新的hadoop jar文件。

将这个jar文件拷贝到D:\hadoop\deploy\hadoop-1.0.3目录下,并重命名为hadoop-tools-1.0.3.jar。

然后进入cygwin环境,重新stop-all.sh和start-all.sh启动hadoop,这样就使用了新的编译代码了。

 

在建立开发环境的过程中,我曾经遇到过以下一些问题:

- eclipse中第一次编译出现找不到javac错误

错误信息为:

Unable to find a javac compiler;

com.sun.tools.javac.Main is not on theclasspath.

遇到这个问题,是因为在classpath找不到javac。

解决方法:

在windows->preferences->ant->Runtime->Classpath中,点击Add Jars

添加jdk目录下的\lib\tools.jar即可。

 

至此,我们就成功建立了cygwin环境下的hadoop 1.0.3的运行和开发环境,下面就可以按照自己的想法使用和修改hadoop了。

 

原创粉丝点击