下载源码 apache 下载地址: http://archive.apache.org/dist
<http://archive.apache.org/dist>/(apache的东西在这个地址下都有,很方便)
hadoop 1.1.2 下载 linux 版本 .tar.gz 文件 下载完成后,解压,进入src绑定
创建源码项目 eclipse新建 web project项目 因为hadoop有用到J2EE的包, 建立java project项目只能提供J2SE的包。
创建后记得将编码改为 UTF-8, Java Compiler 改为1.6
导入源码 在项目中创建 Source Folder 文件夹 core 将解压后的 src\core 下的 org 复制到 eclipse的core下
将解压后的 src\core 下的core-default.xml(配置文件编译后都要在class下) 复制到 eclipse项目的src下
(这一步后代码会报错,后续需要将jar导入)
examples、hdfs、mapred、test、tools 同core一样的操作 test、tools和examples 不需要复制xml配置文件
导入jar 右键项目 Builde Path 在Libraries中 选择 Add External JARs 导入 hadoop解压后根目录下所有的
jar (hadoop-core-1.1.2.jar等) 导入 根目录lib下所有的 jar (asm-3.2.jar等) 导入
根目录src\test\lib 所有 jar 至此 hadoop源码中的jar 就全部导入,会发现大部分源码已经不再报错, 报错的类中提示
...tools.ant....加载不到
我们还需要去 http://archive.apache.org/dist <http://archive.apache.org/dist>/ 下载 ant
下的根目录ant-current-bin.zip
<http://archive.apache.org/dist/ant/ant-current-bin.zip>文件 导入解压后根目录下lib中所有的 jar
如果你是在eclipse中创建的项目还会报错 sun 相关包找不到, 因为eclipse中默认不使用sun等特殊的包(myeclipse没有问题)
我们需要手动添加: 在 Builde Path 的Libraries 的JRE System。。下的Access rules 添加
阅读源码方法: 看启动脚本 根目录下 lib/start-all.sh 脚本里首先执行的是 config 脚本进行环境变量配置等操作 然后是 执行
dfs和mapred 在 start-dfs.sh 中可以看到 去启动了 dfs 守护线程,启动了namenode datanode
在项目中找到NameNode(org/apache/hadoop/hdfs/server/namenode/) 建议使用 Ctrl+Shift+R
进行搜索,这样方便一些。
在NameNode最下面有一个main方法,以此为起点查看hdfs的的源码, 可以看到方法里面先去 createNameNode -》init等等
至于其他包源码阅读同理。