这篇文章写的很细,而且特别专业 |
TaskInputOutputContext |
通过实例让你真正明白mapreduce---填空式、分布(分割)编程 |
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的个数来执行呢? 谢谢 |
说得很详细,非常好 |
好好好好好好好好好好好好好好好好好好好好好好好好好好好好好 |
pig2 发表于 2014-9-21 23:21 谢谢,我知道为什么了,应该是没配置log4j,或者之前配置的不对。 |
梦回三国 发表于 2014-9-21 22:21 |
howtodown 发表于 2014-9-21 18:30 啊,默认就有吗?我没改变什么啊,我是自己搭的单机集群,然后在集群主机系统上的eclipse中直接开发的。 |