hadoop源码导入
Ⅰ hadoop eclipse 怎么创建 project
1. 安装环境介绍如下:
系统:Ubuntu14.04
Hadoop版本:hadoop-2.5.0(点击下载)
java版本:openjdk-1.7.0_55
Eclipse版本:Release 4.4.0 (点击下载)
2. 把下载Hadoop源码包 hadoop-2.5.0-src.tar.gz 解压到工作目录(本文为/home/song),
得到 hadoop-2.5.0-src 文件夹。
3. 安装Maven,命令如下:
$ sudo apt-get install maven
4. 安装Google开源的序列化框架 Protocol Buffers。
1) 下载 protobuf-2.5.0.tar.gz(点击下载),然后解压得到 protobuf-2.5.0 文件夹。
2) 进入protobuf-2.5.0,输入下属命令:
$ ./configure
遇到如下错误:
分析:此属于Ubuntu的常见错误,可以把常用的库全部下载,命令如下:
$ sudo apt-get install build-essential
然后再输入 $ ./configure 命令即可。
3) 顺序执行下面三个命令。
$ make
$ make check
$ sudo make install
4) 查看Protocol版本号,检查是否安装成功。
$ protoc --version
遇到如下错误,如下:
分析知是因为系统找不到lib库,修改 /etc/ld.so.conf 文件,添加 /usr/local/lib 。如下:
$ sudo gedit /etc/ld.so.conf
内容:include /etc/ld.so.conf.d/*.conf /usr/local/lib
执行下述命令更新库文件路径,然后就能通过 $ protoc --version 命令查看版本号。
$ sudo ldconfig
5. 编译Hadoop源码生成Jar包,无需编译native code、测试用例和生成文档,在/home/song/adoop-2.5.0-src目录下,输入下述命令:
$ mvn package -Pdist -DskipTests -Dtar
编译成功后,输出信息如下:
6. 生成Eclipse工程文件,命令如下:
$ cd hadoop-maven-plugins
$ mvn install
$ cd hadoop-2.5.0-src
$ mvn eclipse:eclipse -DskipTests
成功后的输出信息如下图:
7. 在Eclipse中导入源代码:”File“ >> "Import" >> "Existing Projects into Workspace",选择hadoop-2.5.0-src,然后确认。
如上图所示,导入后遇到错误,共有59个错误,但总体上分为3类。解决方法如下:
错误1: org.apache.hadoop.ipc.protobuf.× 无法解析
解决方法如下,依次执行下述命令。
$ cd hadoop-2.5.0-src/hadoop-common-project/hadoop-common/src/test/proto //注释:进入该目录
$ protoc --java_out=../java *.proto
最后,刷新Eclipse中的所有工程。至此,只剩下 6 个错误。
错误2:AvroRecord cannot be resolved to a type TestAvroSerialization.java
解决方法如下:
首先,下载 avro-tools-1.7.4.jar(点击下载)。存放于 hadoop-2.5.0-src 目录中。
然后执行下述命令:
$ cd hadoop-2.5.0-src/hadoop-common-project/hadoop-common/src/test/avro
$ java -jar ~/hadoop-2.5.0-src/avro-tools-1.7.4.jar compile schema avroRecord.avsc ../java
最后,刷新Eclipse工程。只剩下 3个错误。
错误3: Project 'hadoop-streaming' is missing required source ... Build Path Problem
解决方法如下:
右键 hadoop-streaming 项目->properties->左边Java Build Path->Source->选定错误项->右边Remove,如下图所示。
至此,在Eclipse中创建Hadoop工程完成。
Ⅱ 如何通过eclipse查看,阅读hadoop2.4源码
1.导入查看hadoop源码
(1)选择Existing Projects into Workspace
(2)选择源码路径
(3)查看源码
这样我们就完成了全部的内容。
2.阅读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插件,这里就不在详细介绍了。
Ⅲ hadoop项目怎么导入eclipse
eclipse 导入hadoop 有三种方式,
1.直接找到 hadoop svn 资源库 在资源库中下
2.下载 hadoop 原码文件解压开之后 使用 maven 导入 (因为 hadoop 项目本省是使用maven 管理的)
3. 下载 hadoop maven原码,将maven功能转换成 eclipse 项目 ,再在eclipse 导入。
Ⅳ maven怎么导入hadoop依赖包
如果你下载的是hadoop发行包,不需要的。如采用mavan管理的项目一般在项目的根目录下都有一个pom.xml文件,如果没有这个文件一般就不是用maven来管理的。果你下载了只是hadoop源码,而且mavan源码是用maven管理的需要用maven编译。
Ⅳ 如何将hadoop源码导入intellj idea
(1)准备工作 1) 安装JDK 6或者JDK 7 2) 安装scala 2.10.x (注意版本) 2)下载Intellij IDEA最新版(本文以IntelliJ IDEA Community Edition 13.1.1为例说明,不同版本,界面布局可能不同)
Ⅵ 如何在eclipse里方便的读hadoop源码
导入查看hadoop源码(1)选择Existing Projects into Workspace (2)选择源码路径 (3)查看源码 这样就完成了全部的内容。
阅读hadoop源码其中比较常用的Open Call Hierarchy:用Open Call Hierarchy可以查看方法的调用层次。
Ⅶ 你好,我编译hadoop2.4源码,成功之后导入eclipse中,但是怎么还是有报错,缺少包这类的问题呢
你把hadoop安装目录下的各个share目录下的lib下的jar包导入项目,那些是hadoop依赖的jar包
Ⅷ hadoop yarn源码怎么进行修改
第一个阶段:学习hadoop基本使用和基本原理,从应用角度对hadoop进行了解和学习
这是第一个阶段,你开始尝试使用hadoop,从应用层面,对hadoop有一定了解,比如你可以使用hadoop shell对hdfs进行操作,使用hdfs API编写一些程序上传,下载文件;使用MapRece API编写一个数据处理程序。一旦你对hadoop的基本使用方法比较熟悉了,接下来可以尝试了解它的内部原理,注意,不需要通过阅读源代码了解内部原理,只需看一些博客,书籍,比如《Hadoop权威指南》,对于HDFS而言,你应该知道它的基本架构以及各个模块的功能;对于MapRece而言,你应该知道其具体的工作流程,知道partition,shuffle,sort等工作原理,可以自己在纸上完整个画完maprece的流程,越详细越好。
在这个阶段,建议你多看一些知名博客,多读读《hadoop权威指南》(可选择性看相关的几章)。如果你有实际项目驱动,那是再好不过了,理论联系实际是最好的hadoop学习方法;如果你没有项目驱动,那建议你不要自己一个人闷头学,多跟别人交流,多主动给别人讲讲,最好的学习方式还是“讲给别人听”。
============
第二个阶段:从无到入门,开始阅读hadoop源代码
这个阶段是最困苦和漫长的,尤其对于那些没有任何分布式经验的人。 很多人这个阶段没有走完,就放弃了,最后停留在hadoop应用层面。
这个阶段,第一件要做的事情是,选择一个hadoop组件。如果你对分布式存储感兴趣,那么你可以选择HDFS,如果你读分布式计算感兴趣,你可以选择MapRece,如果你对资源管理系统感兴趣,你可以选择YARN。
选择好系统后,接下来的经历是最困苦的。当你把hadoop源代码导入eclipse或intellij idea,沏上一杯茶,开始准备优哉游哉地看hadoop源代码时,你懵逼了:你展开那数不尽的package和class,觉得无从下手,好不容易找到了入口点,然后你屁颠屁颠地通过eclipse的查找引用功能,顺着类的调用关系一层层找下去,最后迷失在了代码的海洋中,如同你在不尽的压栈,最后栈溢出了,你忘记在最初的位置。很多人经历过上面的过程,最后没有顺利逃出来,而放弃。
如果你正在经历这个过程,我的经验如下:首先,你要摸清hadoop的代码模块,知道client,master,slave各自对应的模块(hadoop中核心系统都是master/slave架构,非常类似),并在阅读源代码过程中,时刻谨记你当前阅读的代码属于哪一个模块,会在哪个组件中执行;之后你需要摸清各个组件的交互协议,也就是分布式中的RPC,这是hadoop自己实现的,你需要对hadoop RPC的使用方式有所了解,然后看各模块间的RPC protocol,到此,你把握了系统的骨架,这是接下来阅读源代码的基础;接着,你要选择一个模块开始阅读,我一般会选择Client,这个模块相对简单些,会给自己增加信心,为了在阅读代码过程中,不至于迷失自己,建议在纸上画出类的调用关系,边看边画,我记得我阅读hadoop源代码时,花了一叠纸。注意,看源代码过程中,很容易烦躁不安,建议经常起来走走,不要把自己逼得太紧。
在这个阶段,建议大家多看一些源代码分析博客和书籍,比如《Hadoop技术内幕》系列丛书(轩相关网站:Hadoop技术内幕)就是最好的参考资料。借助这些博客和书籍,你可以在前人的帮助下,更快地学习hadoop源代码,节省大量时间,注意,目前博客和书籍很多,建议大家广泛收集资料,找出最适合自己的参考资料。
这个阶段最终达到的目的,是对hadoop源代码整体架构和局部的很多细节,有了一定的了解。比如你知道MapRece Scheler是怎样实现的,MapRece shuffle过程中,map端做了哪些事情,rece端做了哪些事情,是如何实现的,等等。这个阶段完成后,当你遇到问题或者困惑点时,可以迅速地在Hadoop源代码中定位相关的类和具体的函数,通过阅读源代码解决问题,这时候,hadoop源代码变成了你解决问题的参考书。
============
第三个阶段:根据需求,修改源代码。
这个阶段,是验证你阅读源代码成效的时候。你根据leader给你的需求,修改相关代码完成功能模块的开发。在修改源代码过程中,你发现之前阅读源代码仍过于粗糙,这时候你再进一步深入阅读相关代码,弥补第二个阶段中薄弱的部分。当然,很多人不需要经历第三个阶段,仅仅第二阶段就够了:一来能够通过阅读代码解决自己长久以来的技术困惑,满足自己的好奇心,二来从根源上解决解决自己遇到的各种问题。 这个阶段,没有太多的参考书籍或者博客,多跟周围的同事交流,通过代码review和测试,证明自己的正确性。
============
阅读hadoop源代码的目的不一定非是工作的需要,你可以把他看成一种修养,通过阅读hadoop源代码,加深自己对分布式系统的理解,培养自己踏实做事的心态。
Ⅸ 用maven导入hadoop源码到eclipse中报异常
将hadoop源码解压到一个目录,注意目录层次不要太深,否则可能无法解压。
进入hadoop-maven-plugins文件夹,执行 mvn install
返回源码根目录,执行 mvn eclipse:eclipse –DskipTests
eclipse在任意目录创建新的WorkSpace
eclipse设置Maven:window->preference->maven->{Installations...;user Settings:maven\conf\settings.xml}
eclipse:File->inport->Existing Projects into WorkSpace->Hadoop源码根目录