获取Hadoop的源码和通过Eclipse关联Hadoop的源码美高梅59599

获取Hadoop的源码和通过Eclipse关联Hadoop的源码美高梅59599

一、获取Hadoop的源码

  首先通过官网下载hadoop-2.5.2-src.tar.gz的软件包,下载好之后解压发现出现了一些错误,无法解压缩,
因此有部分源码我们无法解压
,因此在这里我讲述一下如何通过maven来获取完整的源码:

需要说明的是,在使用maven的时候,需要先安装jdk,protoc
,如果没有安装可以参考
http://www.linuxidc.com/Linux/2015-05/117706.htm

(1)通过命令行进入hadoop-2.4.0-src\hadoop-maven-plugins,运行mvn
install

    D:\hadoop2\hadoop-2.4.0-src\hadoop-maven-plugins> mvn
install

   此处等待编译成功

(2)运行,在D:\hadoop2\hadoop-2.4.0-src目录下执行:

执行如下命令:mvn eclipse:eclipse -DskipTests

这时候,我们已经把源码给下载下来了。这时候,我们会看到文件会明显增大。

二、eclipse关联hadoop的源码

通过eclipse中的Import将源码导入到eclipse中,具体操作:

(1)File—>Import

美高梅59599 1

点击Next,进入下图所示

美高梅59599 2

此时需要注意的是pom.xml可能会导致导入的工程文件显示错误,因此需要将该文件删除。最后导入源码之后的结果如下所示:

美高梅59599 3

三、导入源码后,仍然出现一些错误,下面将错误列举一下

错误1:hadoop-streaming上出现感叹号:如下图所示:

美高梅59599 4

该错误的解决办法:在该工程上选择右键—->Properties ,左侧栏选择Java
Build
Path,然后右边选择Source标签页,注意出错的那个路径(先不要删除)。然后右边点击“Link
Source按钮”,选择被链接的目录为“/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/conf”;点击finish即可。最后删除remove
那个出错的路径。

错误2:The type
org.apache.hadoop.ipc.protobuf.RpcHeaderProtos$RpcSaslProto$SaslAuth
cannot be resolved

针对这一类错误就是缺少对应的.java源文件,解决办法是网上下载,并放到对应的目录下面即可。下载java源文件的网站是:

http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hadoop/hadoop-yarn-server-applicationhistoryservice/2.5.2/org/apache/hadoop/yarn/server/applicationhistoryservice/records/impl/pb/ApplicationAttemptStartDataPBImpl.java\#ApplicationAttemptStartDataPBImpl

需要什么样的源文件,可以在该网站检索下载即可。

四、阅读hadoop源码的方法

其中比较常用的

Open Call Hierarchy:

用Open Call
Hierarchy可以查看方法的调用层次。如果想知道一个方法在别的什么地方被调用了,这个功能就很好用了,实际中也很常用,比如要重构一个方法时,想
知道他对其它什么地方可能有影响,就可以用这个功能。在方法名上点击右键,选择Open
Type Hierarchy即可,快捷键是Ctrl+Alt+H。可以在Call
Hierarchy窗口看到方法的调用层次的导航。

Open Type Hierarchy:

用Open Type
Hierarchy可以查看类的继承关系,可以在Hierarchy窗口看到继承层次的导航。在方法或类名上点击右键,选择Open
Type Hierarchy即可,快捷键是F4。

1、 用Open
Declaration可以查看类、方法和变量的声明。这是最常用的一个功能了,如果在要追踪的对象上点右键,选择Open
Declaration,可以跳转到其声明的地方。这个功能有个快捷键是F3,当然你也可以按住Ctrl键,鼠标移过去会变成一个小手,单击就可以了。

2、用Open Super
Implemention可以查看当前方法在父类中的实现或接口中的声明(前提是该方法是对父类或接口中相应方法的重写),在方法名上点击右键,选择Open
Super Implemention即可。

3、 最后介绍一个超级好用的功能,叫Open
Implemention,就是可以跳转到某个调用的方法的具体实现的地方去。为什么说这个是超级好用呢?用过Spring的人都知道,现在都提倡面向接
口编程,所以,如果使用Open
Declaration来追踪一个方法的调用的话,只会看到该方法在接口中的声明,而看不该方法在具体类中的实现,当然,可以使用Call
Hierarchy先得到该方法的整个的调用层次,然后再导航到具体的实现处,但操作有些麻烦了。有了Open
Implemention,就可以直接看到实现的代码了,在方法名上点击右键,选择Open
Implemention就可以了!只是要享受这个功能,可安装一个Eclipse插件,这里就不在详细介绍了。

Ubuntu14.04下Hadoop2.4.1单机/伪分布式安装配置教程 
http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS安装和配置Hadoop2.2.0 
http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04上搭建Hadoop环境
http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置
http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu下Hadoop环境的配置
http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建Hadoop环境图文教程详解
http://www.linuxidc.com/Linux/2012-02/53927.htm

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-05/117705.htm

美高梅59599 5

admin

网站地图xml地图