Hadoop 由多個進程組成,每個進程負責不同的任務和功能。以下是 Hadoop 中常見的進程:
NameNode:NameNode 是 Hadoop 分布式文件系統(HDFS)的關鍵組件之一。它負責存儲文件系統的元數據,如文件和目錄的命名空間、文件塊的位置信息等。
SecondaryNameNode:SecondaryNameNode 是 NameNode 的輔助組件,用于定期合并 NameNode 的編輯日志(edit log)和文件系統鏡像(fsimage),以減少 NameNode 啟動時間和故障恢復時間。
DataNode:DataNode 是 HDFS 的另一個關鍵組件。每個數據節點負責存儲實際的數據塊,并響應來自客戶端和其他節點的讀寫請求。
ResourceManager:ResourceManager 是 Hadoop 的資源管理器,負責分配和管理集群中的計算資源。它協調各個節點上的 NodeManager,并根據任務需求進行資源調度。
NodeManager:NodeManager 運行在每個數據節點上,負責管理和監控該節點上的計算資源。它接收 ResourceManager 的指令,啟動和監控容器(container),并管理節點上的任務執行。
JobTracker:JobTracker 是 Hadoop MapReduce 的早期版本中的組件,負責調度和管理 MapReduce 作業。自 Hadoop 2.x 版本起,JobTracker 被 ResourceManager 和 ApplicationMaster 取代。
TaskTracker:TaskTracker 運行在每個數據節點上,負責執行 MapReduce 任務。它接收來自 JobTracker(或現在的 ApplicationMaster)的任務,并管理任務的執行和狀態。
ResourceManager:ResourceManager 是 YARN(Yet Another Resource Negotiator)框架的核心組件,取代了舊版本中的 JobTracker。它負責集群中的資源分配和調度,并與 NodeManager 協調執行任務。
ApplicationMaster:ApplicationMaster 是 YARN 框架中每個應用程序的管理器。它與 ResourceManager 通信,為應用程序分配資源,監控任務的執行,并與 NodeManager 協調容器的啟動和管理。
HistoryServer:HistoryServer 是一個可選組件,用于收集和存儲執行完成的作業和任務的歷史信息。它提供了一個 Web UI,用于查詢和瀏覽已完成的作業和任務的統計數據。
以上是 Hadoop 中常見的一些進程,不同版本的 Hadoop 可能會有一些差異。此外,還可以通過使用其他組件和工具(如 Hive、HBase、Spark)來擴展和增強 Hadoop 的功能。