1. 程式人生 > >Hadoop源碼學習方法

Hadoop源碼學習方法

準備 簡單 就是 partition 專註 rec hdf 之間 再看

最近準備把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源碼學習方法