首頁  >  文章  >  HADOOP三大核心組件分別是什麼

HADOOP三大核心組件分別是什麼

小老鼠
小老鼠原創
2024-01-04 10:52:346980瀏覽

HADOOP三大核心組件分別是HDFS、MapReduce和YARN。詳細介紹:1、HDFS:即分散式檔案系統,用於儲存Hadoop叢集中的大量資料。具有高容錯性,可跨多個數據節點儲存數據,並提供高吞吐量的數據存取;2、MapReduce:用於大規模數據集的平行處理。它將大數據任務分解為多個小任務,並在多個節點上並行處理,最後將結果匯總;3、YARN:負責叢集資源的分配和管理。

HADOOP三大核心組件分別是什麼

Hadoop的三大核心元件是HDFS(分散式檔案儲存)、MapReduce(分散式運算)和YARN(資源調度)。

1、HDFS:HADOOP分散式檔案系統

HDFS(Hadoop Distributed File System)是Hadoop 專案的核心子項目,主要負責叢集資料的儲存與讀取取,HDFS 是一個主/從(Master/Slave) 體系結構的分散式檔案系統。 HDFS 支援傳統的層次型檔案組織結構,使用者或應用程式可以建立目錄,然後將檔案保存在這些目錄中。檔案系統名字空間的層次結構和大多數現有的檔案系統類似,可以透過檔案路徑對檔案執行建立、讀取、更新和刪除操作。但是由於分散式儲存的性質,它又和傳統的檔案系統有明顯的區別。

HDFS優點:

  • 高容錯性。 HDFS上傳的資料會自動保存多個副本,可以透過增加副本的資料來增加它的容錯性。如果某一個副本遺失,HDFS 會複製其他機器上的副本,而我們不必注意它的實作。
  • 適合大數據的處理。 HDFS 能夠處理 GB、TB 甚至 PB 級別的數據,規模達百萬,數量非常大。 (1PB=1024TB、1TB=1014GB)
  • 串流資料存取。 HDFS 以串流資料存取模式來儲存超大文件,一次寫入,多次讀取,即文件一旦寫入,則不能修改,只能增加。這樣可以保持資料的一致性。

2、MapReduce:大規模資料處理

MapReduce 是Hadoop 核心計算框架,適用於大規模資料集(大於1TB)平行運算的編程模型,包括Map(映射)和Reduce(規約) 兩部分。

當啟動一個 MapReduce 任務時,Map 端會讀取 HDFS 上的數據,將資料對應成所需的鍵值對類型並傳到 Reduce 端。 Reduce 端接收 Map 端傳過來的鍵值對類型的數據,根據不同鍵進行分組,對每一組鍵相同的數據進行處理,得到新的鍵值對並輸出到 HDFS,這就是 MapReduce 的核心思想。

一個完整的 MapReduce 流程包含資料的輸入與分片、Map 階段資料處理、Reduce 階段資料處理、資料輸出等階段:

  • 讀取輸入資料。 MapReduce 過程中的資料是從 HDFS 分散式檔案系統讀取的。檔案上傳到HDFS 時,一般依照128MB 分成了幾個資料區塊,所以在執行MapReduce 程式時,每個資料區塊都會產生一個Map,但也可以透過重新設定檔案分片大小調整Map 的個數,在執行MapReduce 時會根據設定的分片大小對檔案重新分割(Split),一個分片大小的資料塊就會對應一個Map。
  • Map 階段。程式有一個或多個 Map,由預設儲存或分片個數決定。針對 Map 階段,資料以鍵值對的形式讀入,鍵的值一般為每行首字元與檔案最初始位置的偏移量,即中間所隔字元個數,值為這一行的資料記錄。根據需求對鍵值對進行處理,映射成新的鍵值對,將新的鍵值對傳到 Reduce 端。
  • Shuffle/Sort 階段:此階段是指從 Map 輸出開始,傳送 Map 輸出到 Reduce 作為輸入的過程。這個過程會將同一個 Map 中輸出的鍵相同的資料先進行一步整合,減少傳輸的資料量,並在整合後將資料按照鍵排序。
  • Reduce 階段:Reduce 任務也可以有多個,依照 Map 階段設定的資料分區決定,一個分割資料被一個 Reduce 處理。針對每一個 Reduce 任務,Reduce 會接收到不同 Map 任務傳來的數據,每個 Map 傳來的數據都是有序的。一個 Reduce 任務中的每一次處理都是針對所有鍵相同的數據,對數據進行規約,以新的鍵值對輸出到 HDFS。

3、Yarn:資源管理器

Hadoop 的MapReduce 架構稱為YARN(Yet Another Resource Negotiator,另一種資源協調者),是效率更高的資源管理核心。

YARN 主要包含三大模組:Resource Manager(RM)、Node Manager(NM)、Application Master(AM):

  • Resource Manager 負責所有資源的監控、分配和管理;
  • Application Master 負責每個特定應用程式的調度和協調;
  • Node Manager 負責每個節點的維護。

以上是HADOOP三大核心組件分別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn