【深入淺出 Yarn 架構與實現】1-2 搭建 Hadoop 源碼閱讀環境

本文將介紹如何使用 idea 搭建 Hadoop 源碼閱讀環境 。(默認已安裝好 Java、Maven 環境)
一、搭建源碼閱讀環境一)idea 導入 hadoop 工程從 github 上拉取代碼 。https://github.com/apache/hadoop可以選擇對應的分支
# 如拉取 2.8.5 分支git clone -b branch-2.8.5 git@github.com:apache/hadoop.git在 idea 中點擊 File - Open 選擇對應的文件夾目錄,進行導入 。之后會進入漫長的程序加載過程(看機器配置和網速,可能幾十分鐘到幾小時不等) 。

【深入淺出 Yarn 架構與實現】1-2 搭建 Hadoop 源碼閱讀環境

文章插圖
二)配置注釋環境為了更方便的在閱讀源碼過程中記筆記 , 可在源碼基礎上創建新的分支用于記錄 。1、創建新分支
# 如在 branch-2.8.5 基礎上創建git checkout -b branch-2.8.5-comment2、在 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-projecthadoop-mapreduce- project、hadoop-hdfs-projecthadoop-yarn-project 等 。
  • hadoop-common-project:Hadoop 基礎庫所在目錄 , 該目錄中包含了其他所有模塊可能會用到的基礎庫,包括 RPC、Metrics、Counter 等;
  • hadoop-mapreduce-project:MapReduce 框架的實現;
  • hadoop-hdfs-project:Hadoop 分布式文件系統實現;
  • hadoop-yarn-project:Hadoop 資源管理系統 YARN 實現,是我們需要重點關注的部分 。
【【深入淺出 Yarn 架構與實現】1-2 搭建 Hadoop 源碼閱讀環境】
【深入淺出 Yarn 架構與實現】1-2 搭建 Hadoop 源碼閱讀環境

文章插圖
二)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、資源管理器等核心組件的實現 。

【深入淺出 Yarn 架構與實現】1-2 搭建 Hadoop 源碼閱讀環境

文章插圖
三、遠程調試配置與遠程部署的 hadoop 服務連接 。1、idea 中選擇 Run -> Edit Configurations
【深入淺出 Yarn 架構與實現】1-2 搭建 Hadoop 源碼閱讀環境

文章插圖
# 在 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=y4、可以用 idea 進行遠程連接調試了

    推薦閱讀