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源碼學習方法