Hadoop 的源代码存档,挺适合喜欢钻底层实现的你。整体结构清晰,核心模块分得明白,比如 hadoop-common 里能看到各种配置、通信和安全相关的东西,hadoop-hdfs 就是专门搞存储那一块的。源码注释还不错,逻辑也不绕,适合一边看一边调试。
HDFS 的部分还蛮有意思,像 NameNode
和 DataNode
的通信机制,可以看到它怎么元数据、备份、心跳啥的。读源码的时候建议重点看一下 FSDataInputStream
和 FSDataOutputStream
,跟文件操作打交道的都逃不掉这俩。
MapReduce 这块也比较清楚,尤其是 JobTracker
和 TaskTracker
的执行流程。如果你做大数据计算,对任务调度、shuffle 和 sort 这些有点概念,再看源码就更有感觉了。蛮推荐用 job.xml
配合源码一起看,思路更清晰。
要说注意点哦,容错机制一定别错过,像节点挂了怎么自动恢复,检查点是怎么做的,源码都写得比较明白。你还能顺带研究下 分布式缓存,对性能优化有不少启发。
如果你刚好在做 Hadoop 二次开发,或者想改点底层逻辑,这份源码档案还挺值一看的。想看得快一点?可以先从 hadoop-hdfs
里 BlockManager
、FSNamesystem
这些类开始,都是核心逻辑。