Hadoop源码编译
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
为了更加了解Hadoop的运行机制,可以通过源码的方式解读Hadoop。本文主要介绍如何编译Hadoop源码,并且这里采用的版本是1.0.0。
1.安装前准备:
-
JDK :这里要求最低安装的JDK版本是1.6 。
-
安装 Eclipse : 在安装JDK后,还需要安装进行Java开发调试的 IDE 工具。
-
安装辅助工具 Ant。
-
安装类 Unix Shell 环境 Cygwin,对于Cygwin安装,详细如下。
2.Cygwin 安装
-
下载地址如下:http://www.cygwin.com/
-
执行安装程序 setup.exe ; 在安装程序步骤4中选择Unix的在线编辑工具sed;在Windows 下构建Hadoop , 只需要文本处理工具 sed 。
-
安装成功后,启动 Cygwin64 Terminal 并执行 ant -version | sed “s/version/Verson/g” 如下图:
3.Hadoop源码编译
-
从仓库下载源码:http://archive.apache.org/dist/ 或者直接链接 http://archive.apache.org/dist/hadoop/core/hadoop-1.0.0/
-
下载 hadoop-1.0.0.tar.gz 并解压。
-
启动Cygwin,进入Hadoop文件夹并执行ant eclipse,示意图2如下:
但是此次编译是不成功,错误信息如下图:
这个问题主要是因为下载 ant-eclipse-1.0.bin.tar.bz2 不成功。解决的方案是 在Hadoop文件夹下找到build.xml。修改源码中的配置,将地址(一般在2218行):
get src="http://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
更换成如下地址:
get src="http://ufpr.dl.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
但是此次编译也是不成功(主要缺少 .eclipse.templates文件夹),如图4所示:
解决方案:在hadoop文件夹下
> mkdir .eclipse.templates
> ant eclipse
至此编译成功。(在编译的过程中可能还会出现各种各样的疑难杂症,需要笔者根据百度提示解决)
4.导入项目到Eclipse
- 启动Eclipse,并导入项目,这里选择整个解压好的文件夹:
-
导入后项目出现红色感叹号,出现第一个异常:
escription Resource Path Location TypeUnbound classpath variable: 'ANT_HOME/lib/ant.jar' in project 'hadoop-1.0.0' hadoop-1.0.0 Build path Build Path Problem
这里主要是ant的jar包找不到,首先要为ant配置环境变量ANT_HOME,接着:
配置成功后我们可以看到Hadoop的源代码,主要包含三个文件夹core , hdfs , mapred: