Hadoop源码学习方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop源码学习方法相关的知识,希望对你有一定的参考价值。
最近准备把Hadoop的源码挑几个模块好好理解一下,工欲善其事必先利其器,先在网上找了一些大牛写的“读源码”方法,自己把大神们写的方法进行总结如下:
----【董西成】链接:https://www.zhihu.com/question/29690410
读源码主要分三个过程: Step 1. 知道hadoop运行的原理和流程;
Step 2. 看懂源码;
Step 3. 根据业务需求该相关源码。
具体方法:
针对step 1:
1. 建议先去网上博客找些文章看看map&reduce的详细过程,关键是把shuffle搞明白,shuffle是MR的核心;其次把combine、sort、partition搞明白;再者把HDFS读写删操作流程了解一下,任务运行流程中jobTracker、client、taskTracker之间怎么进行交互的,交互内容是什么;再深入了就把split、InputFormat、RecordReader、OutputFormat都了解一下其中原理;
2. 在1的基础上之后再去看一些经典的书会更有效果,比如:《hadoop权威指南》。如果直接上来就拿着四五百页的书看会很没有头绪,心态不好的同学最多坚持两天就OO了,所以强烈建议先看博客,再看书。看书的目的是博客中讲的知识仅仅是框架,大的方面,具体的细节是介绍不到得,再者博客千千万,读着看完脑中对hadoop的认识是不成体系的,所以看书会弥补以上不足;
针对step 2:
1. 选择一个组件的源码深入进去。专注才能提高知识的深度。hadoop主要分三大部分HDFS、Mapreduce、Yarn,可以根据自己兴趣进行选择其中一个为切入点。(本人认为先大概看下三者的代码,找个相对简单的为切入点最好,目前博主还没开始看,等看过之后告诉大家三者中哪个相对比较容易);
2. 还是借助被人的脑力成果提高自己的学习效率。可以看一些具体讲源码分析的博客和书籍。比如:《Hadoop技术内幕》。学习切忌自己闷头“搞原创”!
3. 以模块为单位进行学习,模块里面还有子模块,自己学习过程中最好拿个纸画画不同模块之间的关系。
4. 设断点调试。
针对step 3:
不做介绍...
博主的一个观点就是,对待如此庞大的体统,我们度源码要谨记的就是收敛再收敛,先找一个我们能搞定的知识点立足。
(随后在学习过程中遇到各种体会都会陆续在后续文章中呈现)
以上是关于Hadoop源码学习方法的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop源码学习-脚本命令(hadoop fs -ls)执行细节