1. 程式人生 > >hadoop原始碼閱讀方法

hadoop原始碼閱讀方法

下載原始碼 apache 下載地址: hadoop 1.1.2 下載 linux 版本 .tar.gz 檔案 下載完成後,解壓,進入src繫結 建立原始碼專案 eclipse新建 web project專案 因為hadoop有用到J2EE的包, 建立java project專案只能提供J2SE的包。 建立後記得將編碼改為 UTF-8, Java Compiler 改為1.6 匯入原始碼 在專案中建立 Source Folder 資料夾 core 將解壓後的 src\core 下的 org 複製到 eclipse的core下 將解壓後的 src\core 下的core-default.xml(配置檔案編譯後都要在class下) 複製到 eclipse專案的src下 (這一步後代碼會報錯,後續需要將jar匯入) examples、hdfs、mapred、test、tools 同core一樣的操作 test、tools和examples 不需要複製xml配置檔案 匯入jar
右鍵專案 Builde Path 在Libraries中 選擇 Add External JARs 匯入 hadoop解壓後根目錄下所有的 jar (hadoop-core-1.1.2.jar等) 匯入 根目錄lib下所有的 jar (asm-3.2.jar等) 匯入 根目錄src\test\lib 所有 jar 至此 hadoop原始碼中的jar 就全部匯入,會發現大部分原始碼已經不再報錯, 報錯的類中提示 ...tools.ant....載入不到 匯入解壓後根目錄下lib中所有的 jar 如果你是在eclipse中建立的專案還會報錯 sun 相關包找不到, 因為eclipse中預設不使用sun等特殊的包(myeclipse沒有問題) 我們需要手動新增: 在 Builde Path 的Libraries 的JRE System。。下的Access rules 新增 閱讀原始碼方法:
看啟動指令碼 根目錄下 lib/start-all.sh 腳本里首先執行的是 config 指令碼進行環境變數配置等操作 然後是 執行 dfs和mapred 在 start-dfs.sh 中可以看到 去啟動了 dfs 守護執行緒,啟動了namenode datanode 在專案中找到NameNode(org/apache/hadoop/hdfs/server/namenode/) 建議使用 Ctrl+Shift+R 進行搜尋,這樣方便一些。 在NameNode最下面有一個main方法,以此為起點檢視hdfs的的原始碼, 可以看到方法裡面先去 createNameNode -》init等等 至於其他包原始碼閱讀同理。