shuffle是處在map和reduce之間的過程。我們看一下這個過程都有哪些步驟,對這個問題了解的並不深,可能有錯誤,忘指正
1. map
map輸出key,value,對應**裡的context.write(key, value);,這個步驟是將key,value寫到記憶體buffer裡了,這個記憶體的預設大小是100m
2. sort
當資料大小超過buffer容量的80%(預設)時,會將這部分資料進行排序,按照partition和key值進行排序,partition代表的是會分到哪個reducer裡
3. 溢寫
排好序之後將資料寫到磁碟上
4. merge
因為很多時候不是一次溢寫就可以了,可能會經過多次溢寫,所以會在磁碟上產生多個檔案,這個時候就需要將檔案進行合併。
5. copy
通過http的方式將上乙個步驟中的磁碟上的資料copy到對應的reduce端
6. mergesort
每個map的輸出端的檔案時按照key排好序的,這個地方是對多個map端的檔案按照key進行排序,邊merge邊sort
7. reduce
更詳細的內容見這篇博文
Shuffle過程的簡單介紹
shuffle是連線map和reduce的橋梁 shuffle分為map端的shuffle和reduce端的shuffle map端的shuffle 1輸入資料和執行任務 分片後分配map任務,每個任務分配100m快取 2寫入快取 在溢寫過程中 3溢寫溢寫比達到0.8後啟動溢寫程序,把快取寫入到磁碟...
shuffle過程詳解
這張是官方對shuffle過程的描述。但我可以肯定的是,單從這張圖你基本不可能明白shuffle的過程,因為它與事實相差挺多,細節也是錯亂的。後面我會具體描述shuffle的事實情況,所以這裡你只要清楚shuffle的大致範圍就成 怎樣把map task的輸出結果有效地傳送到reduce端。也可以這...
簡單描述http的請求過程
http通訊機制是在一次完整的http通訊過程中,web瀏覽器與web伺服器之間將完成下列7個步驟 1.建立tcp連線 在http工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連線是通過tcp來完成的,該協議與ip協議共同構建internet,即著名的tcp ip協議族,因此in...