MapReduce中源码分析(map端的过程)
MapReduce階段,map中key面向文章的偏移量=上一行面向文章的偏移量+本行相對于上一行的偏移量+本單詞相對于本行的偏移量。 這個key為本單詞相對于文章的偏移量 這個是MapReduce中map的輸出,調用context的write方法,前邊對應的是key,后邊對應的是value的值。 在方法被調用的時候,方法中參數的傳遞有兩種:值傳遞和應用傳遞 應用傳遞,傳遞的是地址 以上這種是值傳遞,外部的值不會跟著內部的值的變化而變化的 int a=3; { a=5 } a=3 //方法的實現體中對a進行重新賦值 //外部的a=3不會隨著內部a=5的變化而變化的 int a=3; { *a=5 } a=5 //內部的a傳遞的是外部的a的應用地址 Integer a=new Integer a { a=5 } a=5 //這種傳遞是應用傳遞,傳遞的是堆內存中對象的應用地址 這種就是應用傳遞了。 放在這個地方是為了避免頻繁地GC 輸入數據集由map映射成中間數據集,也就是映射成了(K,V)鍵值對的形式 中間數據集最終交給reduce去完成 reduce端從map端拉取數據,reduce的輸入來自map的輸出 map端完成的是計算向數據移動的過程,map的輸出會存在map的主機,供reduce從map端拉取數據的,也就是抽象的名詞叫做shuffle,也就是reduce端數據向計算移動的過程,而map端完成的是計算向數據移動的過程。 reduce端完成的是數據向計算移動的過程
?
總結
以上是生活随笔為你收集整理的MapReduce中源码分析(map端的过程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 趋势发展之人工智能,入行要趁早
- 下一篇: 认识代码编辑区域与解决方案区域 005