您好,登錄后才能下訂單哦!
小編給大家分享一下Shuffle有什么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Shuffle的正常意思是洗牌或弄亂,Shuffle描述著數據從maptask輸出到reducetask輸入的這段過程。partition,是劃分,分區,歸類,是shuffle的一部分。
shuffle什么意思
shuffle階段的主要函數是fetchOutputs(),這個函數的功能就是將map階段的輸出,copy到reduce節點本地。
combine和partition都是函數,中間的步驟應該只有shuffle!
combine分為map端和reduce端,作用是把同一個key的鍵值對合并在一起,可以自定義的。
combine函數把一個map函數產生的<key,value>對(多個key,value)合并成一個新的<key2,value2>.將新的<key2,value2>作為輸入到reduce函數中
這個value2亦可稱之為values,因為有多個。這個合并的目的是為了減少網絡傳輸。
shuffle作用有什么意思
partition是分割map每個節點的結果,按照key分別映射給不同的reduce,也是可以自定義的。這里其實可以理解歸類。
我們對于錯綜復雜的數據歸類。比如在動物園里有牛羊雞鴨鵝,他們都是混在一起的,但是到了晚上他們就各自牛回牛棚,羊回羊圈,雞回雞窩。partition的作用就是把這些數據歸類。只不過在寫程序的時候,mapreduce使用哈希HashPartitioner幫我們歸類了。這個我們也可以自定義。
shuffle就是map和reduce之間的過程,包含了兩端的combine和partition。
Map的結果,會通過partition分發到Reducer上,Reducer做完Reduce操作后,通過OutputFormat,進行輸出。
以上是“Shuffle有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。