官术网_书友最值得收藏!

1.3 閱讀Hadoop源碼

作為一名Hadoop管理員或者研發人員,為了在遇到問題時能夠快速定位問題,或者使自己的程序能夠更好地與Hadoop融合,就必須了解Hadoop的內部原理及架構。深入了解一個開源項目的方法有很多種,比如閱讀相關圖書、博客,但這些只能作為一種輔助手段或者入門方法。要想更加深入地了解或者熟悉其最新架構,需要自己去閱讀源碼。

Hadoop作為一個經典的開源項目,其本身的代碼組成較為復雜,代碼量較大,直接閱讀較為困難,此時搭建一個源碼閱讀環境進行代碼跟蹤就很有必要了,這樣可以方便理解代碼邏輯。本節就來介紹一下如何搭建一個可用的源碼閱讀環境,以及如何進行斷點調試代碼和單元測試。

說明

個人建議IDE使用IntelliJ IDEA,本節也是以它作為代碼編輯工具。

從官網上下載源碼包hadoop-3.2.0-src.tar.gz,導入IDEA。具體步驟為打開IDEA,單擊Open,選擇源碼所在的目錄,我的Hadoop源碼所在目錄為/Users/user/tmp/hadoop-3.2.0-src,如圖1-4所示。

圖1-4 導入Hadoop源碼

IDEA會自動識別Maven項目,這里要注意一下項目中的文件夾有沒有藍色方塊標識以及Java文件顯示圖標,成功導入的目錄結構如圖1-5所示。

圖1-5 成功導入的目錄結構

如果沒有圖1-5中的這些標識,就說明Maven配置沒有被識別,此時需要在Maven Projects選項中單擊“刷新”按鈕,以識別項目的Maven配置,構建項目所需的依賴環境,如圖1-6所示。

圖1-6 刷新Maven項目

如果只想簡單地跟蹤代碼以了解某個功能或者函數的實現邏輯,則可以跳過本節中剩下的內容,繼續看后面的章節。當你看代碼陷入困境,想要通過斷點調試代碼或者運行一個單元測試時,僅憑上面的環境是無法滿足的,因此下面將介紹一個完整的閱讀環境。如果要運行Hadoop中的單元測試,由于有一些依賴類是不存在的,需要通過proto命令生成,因此在運行單元測試之前,需要先生成這些依賴類,具體的生成方式有如下兩種。

  • 利用proto命令對proto文件生成對應的Java類,命令為protoc test.proto –java_out=/tmp,其中test.proto是要生成Java文件的proto文件,--java_out指定了Java文件的輸出目錄。
  • 編譯Hadoop。

這里推薦使用第二種方式,因為需要生成的proto文件較多,第二種方式簡單粗暴、一勞永逸,而且編譯Hadoop是一項不可或缺的技能。

主站蜘蛛池模板: 多伦县| 贵定县| 东阳市| 天峻县| 土默特左旗| 蒙自县| 彭泽县| 琼中| 县级市| 揭东县| 新竹市| 达孜县| 平阴县| 罗源县| 临漳县| 科技| 灵寿县| 永康市| 肥东县| 尖扎县| 韶山市| 雅安市| 石城县| 云林县| 平潭县| 南岸区| 九台市| 勃利县| 成都市| 习水县| 驻马店市| 海宁市| 阿拉善盟| 鄂伦春自治旗| 江西省| 刚察县| 固镇县| 益阳市| 万山特区| 东平县| 邵阳县|