Hi,大家好,关于这个过程我想请教下大家:
在map部分版主说:上面我们看到输出数据输出了3次,也就是说,我们的map执行了3次。
因为input的文件很小,所以肯定是1个split文件,那么在整个过程中只分配了1个map,在job.setInputFormat()中使用了默认的TextInputFormat.class,把输入的文本划分成3个<key,value>pairs。所以
1.是不是在job.setInputFormat()结束的时候就规定好了我们这个map需要重复执行3次?
2.如果是这样,为什么在consolo中,“map中的值value”这句话只出现了1次,而不是跟它的值
一样出现3次,类似的显示在reduce端“reduce中的值”这句话每次都会出现。
3.reducer的个数小于mapper的个数,所以reducer只能是1个,那么这个reducer会和mapper共用一个mapper开启的JVM吗?
4.reduce端接受的是1个序列化成字节数组,那么reduce端执行reduce()方法的次数是不是根据字节数组中key的个数来执行呢?
谢谢
|