MapReduce簡單介紹

2021-09-24 11:17:44 字數 1559 閱讀 1297

mapreduce 定義

hadoop 中的 mapreduce 是乙個使用簡單的軟體框架,基於它寫出來的應用程式能夠執行在由上千個商用機器組成的大型集群上,並以一種可靠容錯式並行處理tb級別的資料集。

mapreduce **

hadoop mapreduce 源於 google 在2023年12月份發表的 mapreduce **。 hadoop mapreduce 其實就是 google mapreduce 的乙個轉殖版本。

mapreduce 特點

mapreduce 為什麼如此受歡迎?尤其現在網際網路+時代,網際網路+公司都在使用mapreduce。mapreduce 之所以如此受歡迎,它主要有以下幾個特點。

1)mapreduce 易於程式設計 。

它簡單的實現一些介面,就可以完成乙個分布式程式,這個分布

式程式可以分布到大量廉價的 pc 機器執行。也就是說你寫乙個分布式程式,跟寫乙個簡單的序列程式是一模一樣的。就是因為這個特點使得 mapreduce 程式設計變得非常流行。

2)良好的 擴充套件性 。當你的計算資源不能得到滿足的時候,你可以通過簡單的增加機器來擴充套件

它的計算能力。

高容錯性 。mapreduce 設計的初衷就是使程式能夠部署在廉價的 pc 機器上,這就要求

它具有很高的容錯性。比如其中一台機器掛了,它可以把上面的計算任務轉移到另外乙個節點上面上執行,不至於這個任務執行失敗,而且這個過程不需要人工參與,而完全是由

hadoop 內部完成的。

4)適合 pb 級以上海量資料的 離線處理 。這裡加紅字型離線處理,說明它適合離線處理而不

mapreduce 雖然具有很多的優勢,但是它也有不擅長的地方。這裡的不擅長不代表它不能做,而是在有些場景下實現的效果差,並不適合 mapreduce 來處理,主要表現在以下幾個方面。

1)實時計算。mapreduce 無法像 mysql 一樣,在毫秒或者秒級內返回結果。

2)流式計算。流式計算的輸入資料時動態的,而 mapreduce 的輸入資料集是靜態的,不能動態變化。這是因為 mapreduce 自身的設計特點決定了資料來源必須是靜態的。

3)dag(有向圖)計算。多個應用程式存在依賴關係,後乙個應用程式的輸入為前乙個的輸出。在這種情況下,mapreduce 並不是不能做,而是使用後,每個mapreduce 作業的輸出結果都會寫入到磁碟,會造成大量的磁碟io,導致效能非常的低下。

mapreduce可以拆分為map和reduce兩部分,可以簡單理解為分久必合

map:拆分資料

先在input split過濾一些沒用的東西,剩下的傳到map中,在map中資料被拆分為一塊塊,

在partition sort 將資料進行排序,然後將所有單元處理好的再簡單的合併成乙個整體,再將這個整體傳送到reduce

reduce:合併資料

reduce來計算合併資料,將map中傳過來的相同型別的資料進行乙個完整的合併如下圖merge,最後輸出完整的資料。

MapReduce的簡單介紹及執行過程

1.mapreduce的簡單介紹 mapreduce是面向大資料並行處理的計算模型 框架和平台,它隱含了以下三層含義 1 mapreduce是乙個基於集群的高效能平行計算平台 cluster infrastructure 它允許用市場上普通的商用伺服器構成乙個包含數 十 數百至數千個節點的分布和平行...

十三 MapReduce介紹

mr是乙個分布式運算程式的程式設計框架,是使用者開發基於hadoop的資料分析應用核心框架,mr的核心功能就是將使用者編寫的業務邏輯 和自帶的預設元件整合成乙個完整的分布式運算程式,併發執行在hadoop集群上。1 優點 1.1 mr易於程式設計 它簡單的實現一些介面,就可以完成乙個分布表示式程式。...

MapReduce入門介紹

mapreduce 定義 mapreduce 是乙個分布式運算程式的程式設計框架,是使用者開發 基於 hadoop 的資料分析應用 的核心框架。mapreduce 核心功能是將使用者編寫的業務邏輯 和自帶預設元件整合成乙個完整的分布式運算程式,併發執行在乙個 hadoop 集群上。mapreduce...