一,map 階段:1,切片是由輸入格式化類來實現的,預設切片大小等於block size
2,乙個切片(邏輯概念,乙個map處理資料的大小)對應乙個map, 所有的 map 執行完之後才執行 reduce
3,預設的情況下 乙個 block對應乙個map程式,也可以使用視窗機制(切片) 使得乙個 block(很多的 cpu 密集型) 很多 map
4,每個切片以 記錄為單位傳遞給 map,預設是一行是一條記錄, map 的輸出是以 k,v,p(哪個分割槽(k hash 取模 )) 值進行輸出的
二,reduce 過程:
1,乙個reduce task 也稱之為分割槽 partitioner
2,reduce 數量最好根據 map 分組的數量
三,map 與 reduce 傳遞:
1,map 到 reduce 過程稱之為 shuffer
2,map以相同的 key 為一組, 呼叫一次 reduce程式,程式內迭代這組資料進行計算
3,reduce 依賴 map 排序,歸併map 排序. map 排序之後不會再有排序
四,分組邏輯:
使用key的hashcode % reduce個數,從map階段開始就將資料放到分割槽檔案中。該分割槽檔案,在hadoop集群中叫做溢位檔案,多個分割槽的資料都會儲存在該檔案中
Hadoop的分布式計算 MapReduce
什麼是mapreduce?你想數出一摞牌中有多少張黑桃。直觀方式是一張一張檢查並且數出有多少張是黑桃。mapreduce方法則是 1.給在座的所有玩家中分配這摞牌 2.讓每個玩家數自己手中的牌有幾張是黑桃,然後把這個數目匯報給你 3.你把所有玩家告訴你的數字加起來,得到最後的結論 1 mapredu...
hadoop批量計算框架 MapReduce
結合自身的經驗記錄,mapreduce中的一些知識點以及乙個wordcount小實踐 核心思想 分而治之 map程式 需要根據自己的需求開發 shuffle 緩衝區大小設定 core site.xml設定為100m io.file.buffer.size 100000000 以位元組為單位 hdfs...
Hadoop基本原理之一 MapReduce
1 為什麼需要hadoop 目前,一塊硬碟容量約為1tb,讀取速度約為100m s,因此完成一塊硬碟的讀取需時約2.5小時 寫入時間更長 若把資料放在同一硬碟上,且全部資料均需要同乙個程式進行處理,此程式的處理時間將主要浪費在i o時間上。在過去幾十年,硬碟的讀取速度並未明顯增長,而網路傳輸速度此飛...