hadoop 是apache开源用于分布式计算与存储的顶级项目。其核心主要包括HDFS分布式存储以及map-reduce 分布式计算,由于本人一直在工作中使用hadoop,对hadoop的内部实现比较感兴趣,故打算把自己分析hadoop源码的心得通过博客与大家分享下。
1) 首先下载一个hadoop版本,由于hadoop目前存在多个版本,有最新的hadoop2.0 beta,以及1.X,0.2x版本等,他们核心实现类似,为了方便阅读,我选择了比较经典的hadoop-0.20.2版本。下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-0.20.2/ 选择 hadoop-0.20.2.tar.gz进行下载。
解压后目录结构如下:
bin 目录是hadoop的启动以及停止脚本:
conf目录为hadoop配置文件目录:
src目录为hadoop源代码目录,lib为jar包依赖
打开eclipse 新建hadoop project,讲src下的代码copy到项目src下 lib conf也复制进来:
最终代码结构如下:
首先 我们从bin目录开始,因为hadoop启动脚本为bin/start-all.sh
我们可以看到start-all 分别调用了hadoop-config.sh, start-dfs.sh 以及start-mapred.sh.
其中hadoop-config.sh初始化系统配置文件,