边城

软件就是驱动世界,改造世界

欢迎来到边城客栈


Hadoop源码分析-03-阅读源码方法

前言

   笔者早之前就阅读过Netty源代码以及MyBatis源代码,由于早期没有任何经验在阅读源代码是基本上都无从下手,
 后来,随着笔者项目和工作经验的增加,对于阅读源代码有了一定的技巧,以Hadoop源代码为例,笔者大致介绍一下
 源代码的阅读方法

阅读之前准备

知识储备

举个例子,假如你要阅读Hadoop源代码,首先你要知道很多的分布式系统概念以及计算机网络,比如TCP的相关知识点,对Hadoop原理有一定的深入的理解,并且你已经使用了相当长的时间Hadoop. 笔者不建议你刚刚学习了几天的Hadoop就开始阅读源代码,只要对于你的成长是没有任何意义的.笔者对于知识点的储备罗列一下几点.

  1. 对Hadoop的概念有深入了解
  2. 有最少一年的深度使用和运维经验
  3. 分布式的概念和计算机网络理解深入
  4. 非常惊人的耐心和毅力
  5. 一定的数据结构和算法能力

阅读技巧

挑选模块

Hadoop已经发展有十几年代码非常非常庞大,里面的逻辑结构非常非常复杂,Hadoop 目前大致分为HDFS模块,Yarn模块,MapReduce模块以及Tool模块。我们不可能把所有的代码都去阅读,挑选你最感兴趣的.去阅读.如下图为Hadoop源代码trunk分支的代码截图.

最基本入手

​ 由于代码量非常非常庞大,加入你从main方法入口一直去追踪下去,你会发现你最后跟丢了。要从最简单的小的模块看起,比如我们悉知的配置模块已经jmx模块等等,这些模块相对来说是独立的,可以提取出来分析.

跟主线思路

新手阅读源代码的时候往往是看到什么方法就点进去,看到什么类就点进去,如果使用这种方式阅读的话,最后会让你
的耐心被磨光,直到放弃阅读.首先你阅读一个类的时候你要大体知道他是干什么的,然后去找他的测试用例,一般情
况下,看源代码需要一个下手点,大型的框架基本上都是用单元测试的,你从单元测试下手,跟着单元测试走.

debug

在测试用例的代码跟踪进去,然后打断点的方式来调试源代码.

善于使用structure

Hadoop代码有的上则几千行,代码结构非常非常庞大,打开structure会让你对大致的方法有一定的了解.

勤于画图总结参考

画图

在阅读的时候需要总结性的画类的结构和状态机图以及时序图.加深对源代码主观上的理解

勤于总结

经常记笔记和写博客是一种不错的记录方法

参考

经常参考别人的总结的,站在巨人的肩膀上,只要走得更远.

总结

以上为笔者大概总结的方法,希望对读者起到一定的帮助.

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦