从零教你如何获取hadoop2.4源码并使用eclipse关联hadoop2.4源码
http://www.aboutyun.com/thread-8211-1-1.html
(出处: about云开发)php
问题导读:
1.如何经过官网src包,获取hadoop的所有代码
2.经过什么样的操做,能够查看hadoop某个函数或则类的实现?
3.maven的做用是什么?
咱们若是想搞开发,研究源码对咱们的帮助很大。不明白原理就如同黑盒子,遇到问题,咱们也摸不着思路。因此这里交给你们
一.如何获取源码
二.如何关联源码
一.如何获取源码
1.下载hadoop的maven程序包
(1)官网下载
这里咱们先从官网上下载maven包hadoop-2.4.0-src.tar.gz。
官网下载地址
对于不知道怎么去官网下载,能够查看:新手指导:hadoop官网介绍及如何下载hadoop(2.4)各个版本与查看hadoop API介绍
(2)网盘下载
也能够从网盘下载:
http://pan.baidu.com/s/1kToPuGB
2.经过maven获取源码
获取源码的方式有两种,一种是经过命令行的方式,一种是经过eclipse。这里主要讲经过命令的方式
经过命令的方式获取源码:
1.解压包
解压包的时候遇到了下面问题。不过不用管,咱们继续往下走html
1 : 没法建立文件:D:\hadoop2\hadoop-2.4.0-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-applicationhistoryservice\target\classes\org\apache\hadoop\yarn\server\applicationhistoryservice\ApplicationHistoryClientService$ApplicationHSClientProtocolHandler.class:
路径和文件名总长度不能超过260个字符
系统找不到指定的路径。 D:\hadoop2\hadoop-2.4.0-src.zip
2 : 没法建立文件:D:\hadoop2\hadoop-2.4.0-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-applicationhistoryservice\target\classes\org\apache\hadoop\yarn\server\applicationhistoryservice\timeline\LeveldbTimelineStore$LockMap$CountingReentrantLock.class:系统找不到指定的路径。 D:\hadoop2\hadoop-2.4.0-src.zip
3 : 没法建立文件:D:\hadoop2\hadoop-2.4.0-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-applicationhistoryservice\target\test-classes\org\apache\hadoop\yarn\server\applicationhistoryservice\webapp\TestAHSWebApp$MockApplicationHistoryManagerImpl.class:系统找不到指定的路径。 D:\hadoop2\hadoop-2.4.0-src.zip
4 : 没法建立文件:D:\hadoop2\hadoop-2.4.0-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-resourcemanager\target\test-classes\org\apache\hadoop\yarn\server\resourcemanager\monitor\capacity\TestProportionalCapacityPreemptionPolicy$IsPreemptionRequestFor.class:
路径和文件名总长度不能超过260个字符
系统找不到指定的路径。 D:\hadoop2\hadoop-2.4.0-src.zip
5 : 没法建立文件:D:\hadoop2\hadoop-2.4.0-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-resourcemanager\target\test-classes\org\apache\hadoop\yarn\server\resourcemanager\recovery\TestFSRMStateStore$TestFSRMStateStoreTester$TestFileSystemRMStore.class:系统找不到指定的路径。 D:\hadoop2\hadoop-2.4.0-src.zip
6 : 没法建立文件:D:\hadoop2\hadoop-2.4.0-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-resourcemanager\target\test-classes\org\apache\hadoop\yarn\server\resourcemanager\recovery\TestZKRMStateStore$TestZKRMStateStoreTester$TestZKRMStateStoreInternal.class:
路径和文件名总长度不能超过260个字符
系统找不到指定的路径。 D:\hadoop2\hadoop-2.4.0-src.zip
7 : 没法建立文件:D:\hadoop2\hadoop-2.4.0-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-resourcemanager\target\test-classes\org\apache\hadoop\yarn\server\resourcemanager\recovery\TestZKRMStateStoreZKClientConnections$TestZKClient$TestForwardingWatcher.class:
路径和文件名总长度不能超过260个字符
系统找不到指定的路径。 D:\hadoop2\hadoop-2.4.0-src.zip
8 : 没法建立文件:D:\hadoop2\hadoop-2.4.0-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-resourcemanager\target\test-classes\org\apache\hadoop\yarn\server\resourcemanager\recovery\TestZKRMStateStoreZKClientConnections$TestZKClient$TestZKRMStateStore.class:
路径和文件名总长度不能超过260个字符
系统找不到指定的路径。 D:\hadoop2\hadoop-2.4.0-src.zip
9 : 没法建立文件:D:\hadoop2\hadoop-2.4.0-src\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-server-resourcemanager\target\test-classes\org\apache\hadoop\yarn\server\resourcemanager\rmapp\attempt\TestRMAppAttemptTransitions$TestApplicationAttemptEventDispatcher.class:
路径和文件名总长度不能超过260个字符
系统找不到指定的路径。 D:\hadoop2\hadoop-2.4.0-src.zip
2.经过maven获取源码
这里须要说明的是,在使用maven的时候,须要先安装jdk,protoc ,若是没有安装能够参考win7如何安装maven、安装protoc
(1)进入hadoop-2.4.0-src\hadoop-maven-plugins,运行mvn installjava
显示以下信息node
部分截图以下:
(2)运行
web
这时候注意,咱们进入的是hadoop_home,我这里是D:\hadoop2\hadoop-2.4.0-src
部分信息以下shell
这时候,咱们已经把源码给下载下来了。这时候,咱们会看到文件会明显增大。
<ignore_js_op>
3.关联eclipse源码
加入咱们如下程序
<ignore_js_op> hadoop2.2mapreduce例子.rar
以下图示,对他们进行了打包
<ignore_js_op>
这两个文件, MaxTemperature.zip为mapreduce例子,mockito-core-1.8.5.jar为mapreduce例子所引用的包
(这里须要说明的是,mapreduce为2.2,可是不影响关联源码,只是交给你们该如何关联源码)
咱们解压以后,导入eclipse
(对于导入项目不熟悉,参考零基础教你如何导入eclipse项目)
<ignore_js_op>
咱们导入以后,看到不少的红线,这些其实都是没有引用包,下面咱们开始解决这些语法问题。
1、解决导入jar包
(1)引入mockito-core-1.8.5.jar
(2)hadoop2.4编译包中的jar文件,这些文件的位置以下:
hadoop_home中share\hadoop文件夹下,具体我这的位置D:\hadoop2\hadoop-2.4.0\share\hadoop
找到里面的jar包,举例以下:lib文件中的jar包,以及下面的jar包都添加到buildpath中。
若是对于引用包,不知道该如何添加这些jar包,参考hadoop开发方式总结及操做指导。
(注意的是,咱们这里是引入的是编译包,编译的下载hadoop--642.4.0.tar.gz
连接: http://pan.baidu.com/s/1c0vPjG0 密码:xj6l)
更多包下载能够参考hadoop家族、strom、spark、Linux、flume等jar包、安装包汇总下载apache
2、关联源码
1.咱们导入jar包以后,就没有错误了,以下图所示
2.找不到源码
当咱们想看一个类或则函数怎么实现的时候,经过Open Call Hierarchy,却找不到源文件。
3.Attach Source
上面三处,咱们按照顺序添加便可,咱们选定压缩包以后,单击肯定,ok了,咱们的工做已经完毕。
注意:对于hadoop-2.2.0-src.zip则是咱们上面经过maven下载的源码,而后压缩的文件,记得必定是压缩文件zip的形式
4.验证关联后查看源码
咱们再次执行上面操做,经过Open Call Hierarchy
看到下面内容
而后咱们双击上图主类,即红字部分,咱们看到下面内容:
> api
问题:
细心的同窗,这里面咱们产生一个问题,由于咱们看到的是.class文件,而不是.java文件。那么他会不会和咱们所看到的.java文件不同那。
实际上是同样的,感兴趣的同窗,能够验证一下。
下一篇:
如何经过eclipse查看、阅读hadoop2.4源码app