对mapreduce任务的理解

哈希函数就是根据输入的键值对,将键相同的键值对放入同一个桶中,但是有可能不同的键也放入到相同的桶中,那么办,桶中桶,通过二次哈希,进一步将不同的键值对放入不同的桶中,或者通过拉链法,拉出一条链来,将这个桶中的所有键值对都入链,不管任何一种方法,在第一次哈希的时候,必须能保证所有的键值对能均匀的分布在不同的桶内,这个才是关键。

所有的map任务和reduce任务都是运行在分布式文件系统上,因为文件很大,所有文件被分成很多块,而如何划分呢?当然是通过hash函数,将大的文件划分为不同的文件块,每一个文件块是一个键值对,map任务的输入就是由这些文件块组成,并且键相同的文件块在同一个map任务上处理,最后经map任务处理的文件块,会输出键值对,而这一些键值对将作为reduce任务的输入,并且键相同的键值对将由同一个reduce任务处理,reduce任务将会对这些键相同的键值对的值进行处理,最后输出的是与输入的键一样但是值不一样的键值对。

原文地址:https://www.cnblogs.com/GODYCA/p/2858119.html