1. map端的主要函数有以下几个:
split --> Record Reader --> map --> partition --> combine(Local Reduce)
split:用于将HDFS中的文件分块,并完成分块文件到各个map任务的映射。
Record Reader:因为每一个map函数的输入输出参数都是key value pair。Record Reader做的事情就是依次读取分块文件中的每一行,将每一行作为一个value,而对应的key就是行号。然后每次将此kvp传递给map函数处理。
map:由用户生成的计算,用于处理文件。
partition:每次用户处理完一个kvp,存储的时候,后台都会进行一个partition,partiton的作用就是依照key进行hash,确定此kvp究竟要存放到哪一个partition文件中。因为map执行完之后,有几个reduce函数就会对应生成几个partiton文件,每一个reduce对应获取一个文件,获取的方式为http。
combine:就是在map完成之后就行一个本地的reduce。一般是没有这一步的,但是用户可以设定。
原文地址:http://luluq1987.blog.163.com/blog/static/40790681201121934352484/