Hadoop2.x 源代碼組織結構

在 Hadoop 的 JAR 壓縮包解壓後的目錄 hadoop-{VERSION} 中包含了 Hadoop 全部的管理腳本和 JAR 包,下面簡單對這些文件或目錄進行介紹。


(1)bin:Hadoop 最基本的管理腳本和使用腳本所在目錄,這些腳本是 sbin 目錄下管理腳本的基礎實現,用戶可以直接使用這些腳本管理和使用 Hadoop。


(2)etc:Hadoop 配置文件所在的目錄,包括 core-site.xml、hdfs-site.xml、mapred-site.xml 等從 Hadoop 1.0 繼承而來的配置文件和 yarn-site.xml 等 Hadoop 2.0 新增的配置文件。


(3)include:對外提供的編程庫頭文件(具體動態庫和靜態庫在 lib 目錄中) ,這些頭文件均是用 C++ 定義的,通常用於 C++ 語言訪問 HDFS 或者編寫 MapReduce 程序。


(4)lib:該目錄包含了 Hadoop 對外提供的編程動態庫和靜態庫,與 include 目錄中的頭  文件結合使用。


(5)libexec:各個服務對應的 Shell 配置文件所在目錄,可用於配置日誌輸出目錄、啓動參數(比如 JVM 參數)等基本信息。


(6)sbin:Hadoop 管理腳本所在目錄,主要包含 HDFS 和 YARN 中各類服務的啓動 / 關閉腳本。


(7)share:Hadoop 各個模塊編譯後的 JAR 包所在目錄。


在 Hadoop 源代碼壓縮包解壓後的目錄 hadoop-{VERSION}-src 中,其中,比較重要的目錄有 :hadoop-common-project、hadoop-mapreduce-project、

hadoop-hdfs-project 和 hadoop-yarn-project 等,下面分別介紹這幾個目錄的作用。

(1)hadoop-common-project:Hadoop 基礎庫所在目錄,該目錄中包含了其他所有模塊可能會用到的基礎庫,包括 RPC、Metrics、Counter 等。


(2)hadoop-mapreduce-project :MapReduce 框架的實現,在 MRv1 中,MapReduce 由編程模型(map/reduce) 、調度系統(JobTracker 和 TaskTracker)和數據處理引擎(MapTask 和ReduceTask)等模塊組成,而此處的 MapReduce 則不同於 MRv1 中的實現,它的資源調度功能由新增的 YARN 完成(編程模型和數據處理引擎不變) ,自身僅包含非常簡單的任務分配功能。 


(3)hadoop-hdfs-project :Hadoop 分佈式文件系統實現,不同於 Hadoop 1.0 中單 NameNode實現,Hadoop 2.0 支持多 NameNode,同時解決了 NameNode 單點故障問題。
(4)hadoop-yarn-project :Hadoop 資源管理系統 YARN 實現。這是 Hadoop 2.0 新引入的分支,該系統能夠統一管理系統中的資源,並按照一定的策略分配給各個應用程序。

發佈了13 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章