在windows下eclipse分析hadoop2.2.0的源代码

来源:互联网 发布:航天开票系统数据导出 编辑:程序博客网 时间:2024/06/06 06:46
最近好几个以前的同事找我问一个很基本的问题,他想学习分析hadoop2系列的源代码(有yarn),但是网上的资料太杂乱了,而且都是基于hadoop的老版本整理的,学习起来非常麻烦。
我解答了几个后,发现好些人的思路非常混乱,问的问题也非常奇怪。网上整理的好的基本没有,所以我整理一个,以后就不用一个个回复了。

首先要明白自己的目标。我看到的目标有两大类:
目标一: 分析hadoop2.2的源代码
分析源代码,并可以简单调试,这个目标与要在生产环境运行是完全不同的。基于这个目标问问题的一般都是windows环境(linux环境下一般没有问题)下发现了各种问题。
本质而言,要分析hadoop2.2的源代码,与其他的开源软件源代码一样,只需要用maven编译hadoop代码就可以,问题是hadoop2.2有几个特殊的依赖。
1)依赖于protocolBuff
protocolBuff也是有windows版本的,直接到googleCode下载可执行文件就可以。
下载以后安装,要在cmd下直接protoc可以运行就OK。
要注意的是,hadoop2.2依赖于protocolBuff的2.5版本,用更低的版本编译hadoop中的协议文件是会报错的。
编译的方式很简单,用protocolBuff直接编译产生代码,或者用 pom.xml中的内容编译。
产生的.java文件可以在pom中指定目标位置,也可以手动copy到对应的目录下。

2) 依赖于javah
javah可以生成头文件.
pom中配置为 <javahPath>${env.JAVA_HOME}/bin/javah</javahPath>  ,所以需要安装JDK。只用JRE是不可以的。
有些版本的maven识别不了env.JAVA_HOME,那样也需要升级maven。

3)依赖于msbuild
没有搞过c++的对这里可能比较不熟(特别是windows下)
这里要下载 visual studio express2010版(免费的),用低的版本是不可以的。
然后用pom中的配置运行就可以(<executable>msbuild</executable>)。
如果下载的是2013等新版本,用pom中的配置也有问题,那就需要自己用studio打开pom中的两个solution,自己编译(会报错,但是看说明解决就可以了).然后把产生的exe/dll 复制到需要放的目录就可以了。

以上的问题解决后,分析hadoop源代码是没有问题了。

目标二:生产运行hadoop2.2

这个就不建议在windows下了,还是用Linux吧,网上资料也非常多,这里就不描述了。