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