colBut

导航

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:

        不做介绍...

  博主的一个观点就是,对待如此庞大的体统,我们度源码要谨记的就是收敛再收敛,先找一个我们能搞定的知识点立足。

  (随后在学习过程中遇到各种体会都会陆续在后续文章中呈现)

posted on 2017-11-05 17:45  colBut  阅读(411)  评论(0编辑  收藏  举报