这个问题你得先了解 Hadoop一个Job处理时间大概由哪些因素组成:
处理时间 map reduce处理的时间
数据传输的时间==》数据的分发,map中间结果的本地写入,reduce端远程获取数据的时间
数据分片方面,中间结果的大小
数据的本地性,map和reduce在处理本节点的数据时,当然会很快和方面的多了;
综合上面的,可能还有其他的因素,你去考虑下自己的原因吧,
比如很小的数据集,却分了很多的数据片,分配了非常多的map或者reduce,这明显是不合理的,很多的时间都浪费在了数据传输的过程,毕竟这个过程是很慢的,相对于计算来说。。。。
你的数据分块是不是不合理?还是数据量比较小?