Hadoop 中的 MapReduce:階段、輸入和輸出、功能和優勢

已發表: 2020-12-24

Hadoop MapReduce 是一種編程模型和軟件框架,用於編寫處理大量數據的應用程序。 MapReduce 程序有兩個階段,Map 和 Reduce。

Map 任務包括通過獲取數據集並將其轉換為另一組數據來拆分和映射數據,其中各個元素被分解為元組,即鍵/值對。 之後,Reduce 任務對數據進行混洗和歸約,這意味著它根據鍵組合數據元組,並相應地修改鍵的值。

在 Hadoop 框架中,MapReduce 模型是數據處理的核心組件。 使用此模型,只需更改配置即可輕鬆擴展應用程序以在集群中運行數百、數千甚至更多機器。 這也是因為雲計算中模型的程序本質上是並行的。 Hadoop 能夠以多種語言運行 MapReduce,例如 Java、Ruby、Python 和 C++。 閱讀更多關於 mapreduce 架構的信息。

目錄

輸入和輸出

MapReduce 模型對 <key, value> 對進行操作。 它將作業的輸入視為一組 <key, value> 對,並生成一組不同的 <key, value> 對作為作業的輸出。 該框架中的兩個類支持數據輸入,即 InputFormat 和 RecordReader。

第一個用於確定應如何為 map 任務劃分輸入數據,而後者從輸入中讀取數據。 對於數據輸出也有兩個類,OutputFormat 和 RecordWriter。 第一個類執行數據接收器屬性的基本驗證,第二個類用於將每個 reducer 輸出寫入數據接收器。

MapReduce 的階段是什麼?

在 MapReduce 中,數據經歷以下階段。

輸入拆分: MapReduce 模型中的輸入被分成小的固定大小的部分,稱為輸入拆分。 這部分輸入由單個地圖消耗。 輸入數據一般是存儲在 HDFS 中的文件或目錄。

映射:這是 map-reduce 程序執行的第一階段,其中每個拆分中的數據逐行傳遞到映射器函數以對其進行處理並生成輸出值。

洗牌:它是映射輸出階段的一部分,其中相關記錄從輸出中合併。 它包括合併和排序。 因此,所有具有相同鍵的鍵值對都被組合在一起。 在排序中,來自合併步驟的輸入被提取和排序。 它返回鍵值對,對輸出進行排序。

減少:合併洗牌階段的所有值並返回單個輸出值。 因此,總結了整個數據集。

另請閱讀: Mapreduce 面試問答

MapReduce 組織如何工作?

Hadoop將一個任務分為兩部分,Map任務包括Splits和Mapping,Reduce任務包括Shuffling和Reducing。 這些在上一節的階段中已經提到。 這些任務的執行由稱為 JobTracker 和 Multiple Task tracker 的兩個實體控制。

對於每個提交執行的作業,都有一個駐留在 NameNode 上的 JobTracker 和駐留在 DataNode 上的多個任務跟踪器。 一個作業被分成多個任務,這些任務在集群中的多個數據節點上運行。 JobTracker 通過調度任務在各種數據節點上運行來協調活動。

任務跟踪器負責單個任務的執行。 它還將進度報告發送到 JobTracker。 它定期向 JobTracker 發送信號以通知系統的當前狀態。 當任務失敗時,JobTracker 會在不同的任務跟踪器上重新安排它。

MapReduce 的優點

使用此模型的應用程序有許多優點。 這些是

  • – 大數據可以輕鬆處理。
  • – 數據集可以並行處理。
  • – 結構化、非結構化和半結構化等所有類型的數據都可以輕鬆處理。
  • – 提供高可擴展性。
  • – 計算單詞的出現很容易,這些應用程序可以收集大量數據。
  • – 可以快速訪問大量受訪者樣本。
  • – 在數據分析中,可以使用通用工具來搜索工具。
  • – 在大型集群中提供負載平衡時間。
  • – 提取用戶位置、情況等上下文的過程很容易實現。
  • – 為這些應用程序提供了良好的泛化性能和收斂性。

必讀: Mapreduce 與 Apache Spark

結論

我們已經詳細描述了 Hadoop 中的 MapReduce。 我們還在簡介中提供了框架的簡要描述以及 Map 和 Reduce 的定義。 給出了該模型中使用的各種術語的定義以及輸入和輸出的詳細信息。

對 MapReduce 框架中涉及的各個階段的詳細說明,詳細說明了工作是如何組織的。 將 MapReduce 用於應用程序的優點列表清楚地說明了它的使用和相關性

如果您有興趣了解有關大數據的更多信息,請查看我們的 PG 大數據軟件開發專業文憑課程,該課程專為在職專業人士設計,提供 7 多個案例研究和項目,涵蓋 14 種編程語言和工具,實用的動手操作研討會,超過 400 小時的嚴格學習和頂級公司的就業幫助。

從世界頂級大學在線學習軟件開發課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

引領數據驅動的技術革命

IIIT Bangalore 大數據高級證書課程