本文將介紹如何使用 idea 搭建 Hadoop 原始碼閱讀環境,(默認已安裝好 Java、Maven 環境)
一、搭建原始碼閱讀環境
一)idea 匯入 hadoop 工程
從 github 上拉取代碼,
https://github.com/apache/hadoop
可以選擇對應的分支
# 如拉取 2.8.5 分支
git clone -b branch-2.8.5 [email protected]:apache/hadoop.git
在 idea 中點擊 File - Open 選擇對應的檔案夾目錄,進行匯入,之后會進入漫長的程式加載程序(看機器配置和網速,可能幾十分鐘到幾小時不等), 
二)配置注釋環境
為了更方便的在閱讀原始碼程序中記筆記,可在原始碼基礎上創建新的分支用于記錄,
1、創建新分支
# 如在 branch-2.8.5 基礎上創建
git checkout -b branch-2.8.5-comment
2、在 github 上創建個新的專案
3、將本地分支 branch-2.8.5-comment 推送到遠端,之后可以在自己 github 上看到這個專案分支了,
# 洗掉原來的遠端專案
git remote remove origin
# 添加新的專案地址
git remote add origin <你的專案地址>
# 推送新的分支
git push -u origin branch-2.8.5-comment
二、原始碼組織架構
一)根目錄結構
匯入工程后,可以看到如下圖的目錄結構,其中,比較重要的目錄有:hadoop-common-project、hadoop-mapreduce- project、hadoop-hdfs-project 和 hadoop-yarn-project 等,
- hadoop-common-project:Hadoop 基礎庫所在目錄,該目錄中包含了其他所有模塊可能會用到的基礎庫,包括 RPC、Metrics、Counter 等;
- hadoop-mapreduce-project:MapReduce 框架的實作;
- hadoop-hdfs-project:Hadoop 分布式檔案系統實作;
- hadoop-yarn-project:Hadoop 資源管理系統 YARN 實作,是我們需要重點關注的部分,
二)yarn 目錄結構
Hadoop YARN 主要關注五個部分:API、Common、Applications、Client 和 Server,
- YARN API:給出了 YARN 內部涉及 RPC 協議的 Java 宣告和 Protocol Buffers 定義;
- YARN Common:包含了 YARN 底層庫實作, 包括事件庫、服務庫、狀態機庫、Web 界面庫等;
- YARN Applications:包含了兩個 Application 編程實體,分別是 distributedshell 和 Unmanaged AM;
- YARN Client:該部分封裝了幾個與 YARN RPC 協議互動相關的庫,方便用戶開發應用程式;
- YARN Server:該部分給出了 YARN 的核心實作,包括 ResourceManager、NodeManager、資源管理器等核心組件的實作,
三、遠程除錯
配置與遠程部署的 hadoop 服務連接,
1、idea 中選擇 Run -> Edit Configurations
# 在 yarn-env.sh 中添加
export YARN_NODEMANAGER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5006"
export YARN_RESOURCEMANAGER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
# 如果想要啟動時先連接 debug,則設定 suspend=y
4、可以用 idea 進行遠程連接除錯了
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/529903.html
標籤:其他
