你好,游客 登录 注册 搜索
背景:
阅读新闻

获取Hadoop的源码和通过Eclipse关联Hadoop的源码

[日期:2015-05-19] 来源:Linux社区  作者:ljy2013 [字体: ]

一、获取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

点击Next,进入下图所示

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

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

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

该错误的解决办法:在该工程上选择右键---->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

linux
相关资讯       Hadoop源码 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款