最近在看caibinbupt的hadoop的源码分析的文章,下面对于他的分析思路以及先后顺序做个小结:
1.首先前八章是介绍hdfs的RPC机制;
2.从第九章开始介绍hdfs的内容:
2.1分析hdfs,包括namenode,datanode,作者先分析了datanode;
2.2从第九章------第一七章 分析了datanode
2.3datanode的实现包括两部分:对本地数据块的管理;和其他的实体打交道;
2.4作者先从目录dfs/data开始,分析了data目录下面的各个文件的用途;
2.5作者接着分析了系统的工作状态(升级回滚之类),并且分析了系统在升级会滚等操作时datanode的中发生了什么状态(previous,current等目录结构的编化);
2.6作者分析了Storage类以及相关类StorageInfo,StorageDirectory,DataStorage等;
2.7作者分析了FSDataset相关的类(这个类对block进行操作);
2.8作者分析了datanode的动态行为类Dataceiver,BlockSender,BlockReceiver等(真正的读写);
2.9作者分析了datanode上的非主流程DataBlockScnner;
2.10作者最后分析了DataNode这个类以及相关的类图
***总的来说,在分析源码的时候应采用《总---分---总,静---动》 的结构,也就是先从大局上掌握核心脉络,然后深入到各个依赖的核心数据结构,最后再回到原点;先分析类与类之间的静态结构,然后再分析动态行为,动态交互。