(1)bin:Hadoop 最基本的管理腳本和使用腳本所在目錄,這些腳本是 sbin 目錄下管理腳本的基礎實現,用戶可以直接使用這些腳本管理和使用 Hadoop。
(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 新引入的分支,該系統能夠統一管理系統中的資源,並按照一定的策略分配給各個應用程序。