說起mapreduce,我並不知道太多關於mapreduce的知識,以前也並沒有聽說過mapreduce的方面的東西,感覺是一種比較深奧的東西,當時只是感覺這東西可能和it有關係,感覺是一種**方面的知識,來進行大資料方面的知識構造。自從學了這門公選課之後,我才慢慢地弄清楚大資料與人工智慧這方面的東西,但也只是一知半解而已,並沒有能夠深入了解,只是能了解到皮毛。在學了這門公選課之後,的確是更了解大資料與人工智慧所說的東西,也知道了和mapreduce有關的一些東西。
mapreduce是一種程式設計模型,用於大規模資料集(大於1tb)的並行運算。概念"map(對映)"和"reduce(歸約)",是它們的主要思想,都是從函式式程式語言裡借來的,還有從向量程式語言裡借來的特性。它極大地方便了程式設計人員在不會分布式並行程式設計的情況下,將自己的程式執行在分布式系統上。 當前的軟體實現是指定乙個map(對映)函式,用來把一組鍵值對對映成一組新的鍵值對,指定併發的reduce(歸約)函式,用來保證所有對映的鍵值對中的每乙個共享相同的鍵組。
mapreduce是面向大資料並行處理的計算模型、框架和平台,它隱含了以下三層含義:
1.mapreduce是乙個基於集群的高效能平行計算平台(cluster infrastructure)。它允許用市場上普通的商用伺服器構成乙個包含數
十、數百至數千個節點的分布和平行計算集群。
2.mapreduce是乙個平行計算與執行軟體框架(software framework)。它提供了乙個龐大但設計精良的平行計算軟體框架,能自動完成計算任務的並行化處理,自動劃分計算資料和計算任務,在集群節點上自動分配和執行任務以及收集計算結果,將資料分布儲存、資料通訊、容錯處理等平行計算涉及到的很多系統底層的複雜細節交由系統負責處理,大大減少了軟體開發人員的負擔。
3.mapreduce是乙個並行程式設計模型與方法(programming model & methodology)。它借助於函式式程式語言lisp的設計思想,提供了一種簡便的並行程式設計方法,用map和reduce兩個函式程式設計實現基本的平行計算任務,提供了抽象的操作和並行程式設計介面,以簡單方便地完成大規模資料的程式設計和計算處理 。
mapreduce最早是由google公司研究提出的一種面向大規模資料處理的平行計算模型和方法。google一直是我很嚮往的乙個公司,google公司所提出的mapreduce對於我們大學生來說,可能會顯得很深奧,也許會看不懂,就算是計算機專業的也不一定能看得懂,更何況是我這種國際經濟與**這個專業的,但我還是依舊努力去去學習,去看懂。
所以mapreduce能幹什麼呢?簡單地講,mapreduce可以做大資料處理。所謂大資料處理,即以價值為導向,對大資料加工、挖掘和優化等各種處理。
mapreduce擅長處理大資料,它為什麼具有這種能力呢?這可由mapreduce的設計思想發覺。mapreduce的思想就是「分而治之」。
2.reducer負責對map階段的結果進行彙總。至於需要多少個reducer,使用者可以根據具體問題,通過在mapred-site.xml配置檔案裡設定引數mapred.reduce.tasks的值,預設值為1。
乙個比較形象的語言解釋mapreduce:we want to count all the books in the library. you count up shelf #1, i count up shelf #2. that』s map. the more people we get, the faster it goes.(我們要數圖書館中的所有書。你數1號書架,我數2號書架。這就是「map」。我們人越多,數書就更快。)
mapreduce提供了以下的主要功能:
1.資料劃分和計算任務排程:
系統自動將乙個作業(job)待處理的大資料劃分為很多個資料塊,每個資料塊對應於乙個計算任務(task),並自動排程計算節點來處理相應的資料塊。作業和任務排程功能主要負責分配和排程計算節點(map節點或reduce節點),同時負責監控這些節點的執行狀態,並負責map節點執行的同步控制。
2.資料/**互定位:
為了減少資料通訊,乙個基本原則是本地化資料處理,即乙個計算節點盡可能處理其本地磁碟上所分布儲存的資料,這實現了**向資料的遷移;當無法進行這種本地化資料處理時,再尋找其他可用節點並將資料從網路上傳送給該節點(資料向**遷移),但將盡可能從資料所在的本地機架上尋找可用節點以減少通訊延遲。
自從學了大資料與人工智慧,並了解了和mapreduce有關的知識後,我逐漸有了大資料思維,也逐漸明白了大資料思維如何在生活中的運用,大資料與人工智慧正逐漸成為時代的新寵兒,而我們當代大學生也應該去學習大資料思維,擁有乙個大資料的思想來為未來的大資料時代做好萬分的準備。
關於MapReduce的理解?
來自知乎 其實我們可以從word count這個例項來理解mapreduce。mapreduce大體上分為六個步驟 input,split,map,shuffle,reduce,output。細節描述如下 輸入 input 如給定乙個文件,包含如下四行 2.拆分 split 將上述文件中每一行的內容...
這篇有關遊戲的讀後感
我決定以後七點到七點半都讀csdn的文章了 開闊思路 這裡是看到比較有感觸的一段話 正如中國遊戲發行商所展現的,單憑一款遊戲公司很難持久,你必須有一種策略來將第一款遊戲的精髓以及從中學到的經驗教訓融入到你今後的遊戲當中。你需要有一種壓倒性的優勢,這種優勢源於你的首款遊戲卻能融入今後遊戲的遊戲。這樣你...
Hadoop學習 關於MapReduce
mapreduce 是一種可用於資料處理的程式設計模型。mapreduce 任務過程分為兩個處理階段 map階段和reduce階段。每個階段都是以鍵 值對作為輸入和輸出。這些階段任務執行在集群上的節點上,並通過yarn進行排程,如果乙個任務失敗,它將在另乙個不同的節點上自動重新排程執行。mapred...