18.如附圖所示,Hadoop 最基本架構包含下列哪些項目?
(A) (1)和(2)
(B) (2)和(3)
(C) (3)和(4)
(D) (1)(2)(3)(4)
統計: A(3), B(40), C(1), D(6), E(0) #3103443
詳解 (共 1 筆)

嗯,用户之前问了一个关于Hadoop高可用性的问题,现在又问了Hadoop最基本的架构。可能他是在学习Hadoop的基础知识,或者在准备考试,需要巩固基本概念。之前的问题涉及HA设计,现在转向基础架构,可能用户想从整体上理解Hadoop的结构,再深入各个组件。
首先,我需要回忆Hadoop的核心组件。最基本的肯定是HDFS和MapReduce,可能还有YARN。HDFS负责存储,MapReduce处理计算,YARN负责资源管理。不过用户问的是“最基础”的架构,可能指的是Hadoop 1.x版本,那时还没有YARN,MapReduce负责资源管理和计算。但Hadoop 2.x之后,YARN分离出来,所以可能需要说明不同版本的架构变化。
接下来,用户可能对HDFS的结构不太清楚,比如NameNode和DataNode的作用。需要解释NameNode管理元数据,DataNode存储实际数据块。同时,Secondary NameNode的作用也需要提到,虽然它不是HA的解决方案,但可能在基础架构中存在。
另外,用户可能想知道Hadoop的分布式存储和计算如何协同工作。比如,数据分块存储在多个节点,计算任务就近处理数据,减少数据传输。这也是Hadoop的核心设计理念之一。
还要考虑用户可能的误区,比如是否混淆了Hadoop生态系统中的其他组件,如Hive、Pig等,但问题明确问的是最基本的架构,所以应该集中在HDFS、MapReduce/YARN上。
最后,需要确认回答是否清晰,结构是否合理,是否涵盖了关键点:HDFS的结构、MapReduce的工作流程、YARN的角色(如果适用)、数据本地化原则等。同时,可能需要指出不同版本的区别,帮助用户理解架构演变。
Hadoop 最基本的架構主要由以下三個核心元件組成,專注於分散式儲存 與分散式運算 的整合:
1. HDFS(Hadoop Distributed File System)
- 功能 :分散式檔案系統,用於儲存巨量資料。
- 核心設計 :
- NameNode (主節點):
- 管理檔案系統的中繼資料 (Metadata),例如檔案目錄結構、資料區塊(Block)位置等。
- 不儲存實際資料,僅負責協調與管理。
- DataNode (工作者節點):
- 實際儲存資料區塊 (預設每個區塊 128 MB 或 256 MB)。
- 定期向 NameNode 報告自身儲存的區塊狀態。
- Secondary NameNode (輔助節點):
- 非備援節點 ,主要用於定期合併 NameNode 的操作日誌(EditLog)與映像檔(FsImage),減少 NameNode 啟動時間。
- 無法直接取代 NameNode (需手動恢復)。
- NameNode (主節點):
2. MapReduce(分散式運算框架)
- 功能 :分散式資料處理引擎,用於大規模資料集的平行運算。
- 運作流程 :
- Map 階段 :
- 將輸入資料分割為多個小區塊(Split),由多個 Mapper 並行處理。
- Mapper 輸出鍵值對(Key-Value Pairs)。
- Shuffle & Sort 階段 :
- 根據 Key 對 Mapper 的輸出進行排序與分組,傳遞給 Reducer。
- Reduce 階段 :
- Reducer 對相同 Key 的資料進行彙總計算,輸出最終結果。
- Map 階段 :
- 特點 :
- 資料本地化(Data Locality) :運算任務會移動到資料所在的節點執行,減少網路傳輸。
3. YARN(Yet Another Resource Negotiator)
- 功能 :資源管理與任務調度框架(Hadoop 2.x 後引入,取代早期 MapReduce 的資源管理角色)。
- 核心元件 :
- ResourceManager (主節點):
- 全域資源管理,分配叢集資源(CPU、記憶體)給應用程式。
- NodeManager (工作者節點):
- 監控本機資源使用狀況,執行來自 ResourceManager 的指令。
- ApplicationMaster :
- 每個應用程式獨立的管理程序,負責協調任務執行與資源申請。
- ResourceManager (主節點):
Hadoop 基本架構圖
關鍵設計理念
- 水平擴展(Scale-Out) :透過增加廉價機器擴展儲存與運算能力。
- 容錯性(Fault Tolerance) :
- HDFS:資料區塊自動複製(預設 3 份)。
- MapReduce:任務失敗時自動重新執行。
- 批次處理優化 :適合大規模資料的離線分析,而非即時查詢。
Hadoop 版本演進
- Hadoop 1.x :僅包含 HDFS 和 MapReduce(無 YARN,資源管理與運算耦合)。
- Hadoop 2.x :引入 YARN,解耦資源管理與運算框架,支援更多應用(如 Spark)。
- Hadoop 3.x :增強儲存效率(如 Erasure Coding)與安全性。
此架構為 Hadoop 生態系統的基礎,後續工具(如 Hive、HBase、Spark)均依賴此核心框架擴展功能。
┌───────────────┐
│ Client │
└───────┬───────┘
▼
┌───────────────┐
│ NameNode │(管理 HDFS 元數據)
└───────┬───────┘
│
┌───────────┴───────────┐
▼ ▼
┌─────────────┐ ┌─────────────┐
│ DataNode 1 │ │ DataNode 2 │(儲存資料區塊)
└─────────────┘ └─────────────┘
▲ ▲
└───────────┬───────────┘
▼
┌───────────────┐
│ ResourceManager│(YARN 資源管理)
└───────┬───────┘
│
┌───────────┴───────────┐
▼ ▼
┌─────────────┐ ┌─────────────┐
│ NodeManager │ │ NodeManager │(執行運算任務)
└─────────────┘ └─────────────┘