- Hadoop 3實戰指南
- 孫志偉
- 809字
- 2021-06-15 16:02:46
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是一項不可或缺的技能。
- 數據存儲架構與技術
- Neural Network Programming with TensorFlow
- 數據要素五論:信息、權屬、價值、安全、交易
- 區塊鏈:看得見的信任
- 基于OPAC日志的高校圖書館用戶信息需求與檢索行為研究
- MATLAB Graphics and Data Visualization Cookbook
- SQL應用及誤區分析
- 數據科學工程實踐:用戶行為分析與建模、A/B實驗、SQLFlow
- 數字IC設計入門(微課視頻版)
- Python數據分析從小白到專家
- 大數據隱私保護技術與治理機制研究
- 大數據計算系統原理、技術與應用
- 數據挖掘與數據化運營實戰:思路、方法、技巧與應用
- 數據分析方法及應用:基于SPSS和EXCEL環境
- 大學計算機:理解和運用計算思維