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