hadoop的另乙個核心,就是mapreduce,簡單來說四個字:分而治之。
舉個例子,我開了一家麵館,一開始知名度不夠,每天也就賣個十幾二十碗,乙個人工作還感覺很閒。隨著時間推移,知道我家麵館的人越來越多,十里八方的人都趕來吃,沒辦法,味道好呀!銷量從幾十變成了幾百,甚至要上千碗。乙個人肯定忙不過來了,那就招人吧,十個人揉麵,十個人煮麵,十個人拌醬,十個人擦桌端碗,這樣勉強能服務得過來。
扯遠了,回到mapreduce。前面的文章已經介紹過hdfs,它是乙個分布式儲存系統,大資料量的文字儲存在上面
會被分成塊,存在不同節點上。相當於把一大坨麵分成好幾十坨麵,乙個人揉不了,分幾十個人揉,總能揉了吧?既然
資料已經在hdfs上了,要計算的時候直接在節點上計算,速度也就加快了。hadoop提倡「移動計算比移動資料高效。」,
即盡量在資料節點上跑mr程式。
所以mr適合做一些大文字的處理工作,比如計算大型**日誌中各個ip位址出現的次數,或者從哪個網頁跳轉到
**的次數最多,只需開啟mr,在每個資料節點上計算,計算完之後再合併結果,速度比直接計算大檔案快很多(直接計算
很有可能都跑不起來)。
mapreduce分map階段和reduce階段,map是各個資料節點的計算,reduce是合併map結果的階段。
看乙個wordcount的,比較好理解一些。
python學習筆記 高階函式map reduce
既然變數可以指向函式,函式的引數能接收變數,那麼乙個函式就可以接收另乙個函式作為引數,這種函式就稱之為高階函式。乙個最簡單的高階函式 def add x,y,f return f x f y 當我們呼叫add 5,6,abs 時,引數x,y和f分別接收 5,6和abs map deff x retu...
Hadoop學習筆記 Hadoop初識
序言 資訊化發展到當今,網際網路的資料量是不斷地增加,那麼如何很好的處理以及利用這些資料可能是未來的乙個發展方向,這也之所以產生了各種平台的雲計算。對於網際網路而言,大資料量可分為兩種 第 一 大訪問量請求 第 二 大資料量處理。大訪問量請求這個事應用端應該思考的問題,如何很好的處理大的訪問量,如何...
Hadoop學習一 Hadoop版本
一.hadoop社群版和發行版 社群版 我們把apache社群一直開發的hadoop稱為社群版。簡單的說就是apache hadoop 發行版 基於apache hadoop的基礎上進行商業改造的解決方案,包含一系列定製的管理工具和軟體。二.hadoop社群版版本號 一直以來,hadoop的版本號一...