Hadoop-1.2.1 源码分析1 (包图概览)
要存点货啊, 潜心研究技术
Hadoop主要包括如下组成部分:
- Hadoop Core:一些支持hadoop其它子项目的通用工具集 (新版本改为 Hadoop Common)
- HDFS:一个高容错性的分布式文件系统,用于存储数据
- MapReduce:一个处理大数据集的分布式计算框架
图1-1 是Hadoop项目的主要顶层包图:
图1-1
下载 hadoop-1.2.1 源码导入eclipse,见 图1-2:
图1-2
表1-1 为各包之间的依赖关系:
包名 | 功能描述 | 需依赖的其它包 |
tools | 提供一些命令行工具,如DistCp,archive | mapreduce fs hdfs ipc io security conf util |
mapreduce | Hadoop的MapReduce实现,旧版本包名为mapred | filecache fs hdfs ipc io net metrics security conf util |
filecache | 提供HDFS文件的本地缓存,用于加快MapReduce的数据访问速度 | fs conf util |
fs | 文件系统的抽象,可以理解为支持多种文件系统实现的统一文件访问接口 | hdfs ipc io net metrics security conf util |
hdfs | HDFS,Hadoop的分布式文件系统实现 | fs ipc io http net metrics security conf util |
ipc | 一个简单的IPC的实现,依赖于io提供的编解码功能 | io net metrics security conf util |
io | 表示层. 将各种数据编码/解码,方便于在网络上传输 | ipc fs conf util |
net | 封装部分网络功能,如DNS,socket | ipc fs conf util |
security | 用户和用户组信息 | io conf util |
conf | 系统的配置参数 | fs io util |
metrics | 系统统计数据的收集,属于网管范畴 | util |
util | 工具类 | mapreduce fs io conf |
record | 根据DDL(数据描述语言)自动生成他们的编解码函数,目前可以提供C++和Java | io.Writable* |
http | 基于Jetty的HTTP Servlet,用户通过浏览器可以观察文件系统的一些状态信息和日志 | log conf util |
log | 提供HTTP访问日志的HTTP Servlet | util |
参考资料:
google 的大数据计算相关论文
GoogleCluster:http://static.googleusercontent.com/media/research.google.com/en/us/archive/googlecluster-ieee.pdf
Chubby:http://static.googleusercontent.com/media/research.google.com/en/us/archive/chubby-osdi06.pdf
GFS:http://static.googleusercontent.com/media/research.google.com/en/us/archive/gfs-sosp2003.pdf
BigTable:http://static.googleusercontent.com/media/research.google.com/en/us/archive/bigtable-osdi06.pdf
MapReduce:http://static.googleusercontent.com/media/research.google.com/en/us/archive/mapreduce-osdi04.pdf