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端完成的是数据向计算移动的过程