Hadoop 2.0源码阅读环境配置--win7+Eclipse+Hadoop2.2.0

hadoop 2.0发布时间不长,目前也还没有普及使用,所以关于Hadoop2.0相关的材料在网上能查到的不多,只能自己一点一点积累和学习。顺便把自己学习过程中的知识总结下,方便以后查看和使用。

下面是本次配置Hadoop 2.0源码阅读环境的步骤,配置环境是: win7+eclipse+hadoop 2.2.0+maven3.1。Hadoop2.2.0是目前为止Hadoop2.0唯一的一个稳定版本GA,所以建议要部署2.0集群的人最好还是选择2.2.0版本。

Hadoop2.0的源码阅读环境全部是基于maven仓库的,不再像1.0一样直接导入Java工程了。所以需要先安装maven以及Eclipse的maven插件。下面是步骤:


1. 安装maven

这里我选用的版本是apache-maven-3.1.1。貌似由于版本问题,eclipse indigo + hadoop 2.2.0配置是不能用maven2. 

(1) 从Apache官网下载maven包,解压到某个目录下;

(2) 修改conf/setting.xml,配置localRepository参数,这是maven库在本地的目录位置:

<localRepository>D:\WorkSpace\Maven</localRepository>

(3) 配置系统环境变量:

#首先配置 M2_HOME=D:\Software\apache-maven-3.1.1

#然后编辑添加path变量,末尾添加%M2_HOME%\bin

(4)测试maven是否已经安装成功:

打开CMD,输入mvn -version,查看mvn是否安装成功。


2. 给eclipse配置maven插件

安装m2e插件。安装方法有两种,一种是在线安装,通过eclipse的help->install new software自己配置安装源,或者在eclipse marketplace中搜索安装,不过我没在market中找到针对indigo的插件,所以采用第二种插件安装方法,本地安装配置。

下面是本地安装的步骤:
(1) 下载eclipse-maven-plugins;(注意版本,eclipse-maven3-plugin)

(2) 在Eclipse的安装目录下建立两个目录,myplugin和link;

(3) 把eclipse-maven-plugins解压到myplugin中;

(4) 在link目录下建立一个文件,写入path={myplugin下的maven目录},例如D://eclipse/myplugin/maven,然后改名为maven.link;

(5) 重启Eclipse,查看maven插件是否配置成功。如果配置成功,那么打开window->preferences就能看到maven的选项。

(6) 进入window -> preferences -> maven -> installations,添加本机上安装的maven的目录;然后user setting下配置setting.xml的位置


3. 下载安装proto buffer 2.5因为Hadoop2.0是基于protobuf2.5实现的RPC交互协议,所以需要安装protobuf2.5,否则在编译的时候会报错。安装方法是:
(1) 下载proto-buffer-2.5,解压;

(2) 把里面的protoc.exe拷贝到c:\windows\目录下;

(3) 在cmd下输入protoc --version测试是否安装成功。


4. 导入Hadoop2.0项目

源码目录中有一个BUILDING.TXT,里面是详细的源码导入Eclipse,和源码编译等步骤。建议详细阅读这个官方文档,比从网上找到的攻略肯定更可靠,毕竟是人家官方出的方法。
(1) 首先下载hadoop-2.2.0-src的压缩包,解压到某个目录下;

(2) 修改hadoop2.0源码目录下的pom.xml,改变tools.jar的配置:

<span style="font-size:12px;"><span style="font-family:Microsoft YaHei;font-size:12px;">		     <!-- 增加jdk tools的配置 -->
			  <dependency>
			     <groupId>jdk.tools</groupId>
			     <artifactId>jdk.tools</artifactId>
			     <version>1.6</version>
			     <scope>system</scope>
			     <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
			  </dependency></span></span>

  (3) 在CMD中执行如下命令,创建Eclipse project:

  $ cd hadoop-maven-plugins
  $ mvn install
  $ mvn eclipse:eclipse -DskipTests

(4) 在Eclipse中导入: [File] > [Import] > [Existing Projects into Workspace].


5. 错误解决。导入后,会在Eclipse中产生很多个projects。但是其中会有许多错,下面一一解决:
(1)ERROR:  /hadoop-common/src/test/java/org/apache/hadoop/io/serializer/avro/TestAvroSerialization.java显示没有AvroRecord类。

从网上下载AvroRecord类,并放到这个目录下,刷新project就好。网上的下载地址: http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.hadoop/hadoop-common/2.2.0/ ,在这里查找相应的类。

(2)ERROR: /hadoop-common/src/test/java/下报错 org.apache.hadoop.ipc.protobuf.TestProtos和org.apache.hadoop.ipc.protobuf.TestRpcServiceProtos类不存在。

和(1)一样的解决方法,从网上下载这个类,放到src/main/java/下面,刷新就好了。

(3)ERROR: 在/hadoop-auth/src/test/java下,org.apache.hadoop.security.authentication.client中报错,The type org.mortbay.component.AbstractLifeCycle cannot be resolved

build path->configure build path,添加外部jar包,把jetty-util.jar添加进来,版本和jetty.jar对应就好。一般在maven目录下的org/mortbey/jetty/util下应该能找到这个jar包,如果找不到的话,自己从网上下载。报这个错的原因是,org.mortbay.component是在jetty-util包中的,但不知道什么原因导致jetty-util.jar包没有正常导入,所以需要我们手动添加。


楼主安装好后就遇到了这么几个错误,如果有遇到其他的错误,就按照这样的方法一个一个排查,把缺少的类或者缺少的包添加进来就好。到此Eclipse2.0的源码阅读环境就配置好了,在阅读源码时可以轻松用F3定位方法和类,也能把源码关联到MapReduce程序中,方便调试。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值