mapreduce任务
mapper:
mapper 四个参数:输入键,输入值,输出键和输出值的类型。
reducer:
reducer 的参数:和mapper一样是输入键,输入值,输出键和输出值的类型。reduce的输入类型必须匹配 mapper 的输出类型。
combiner:
可以没有,主要作用是用来减少mapper产生的中间结果。
各阶段结果
mapper将输出结果写入本地硬盘,因为mapper输出的是中间结果,进过reducer处理才会是最终结果,并且任务完成后,map任务的结果就可以删除,因此没有必要写入hdfs上。
如果运行map任务的节点在将map中间结果传送给reduce任务之前失败,Hadoop将会在另一个节点上重新运行这个map任务以再次构建中间map结果。
reducer任务不具备数据本地化的又是,单个reduce任务的输入通常来自所有mapper的任务输出。经过排序的mapper任务结果,经过网络传输发送到运行reduce任务的节点,数据在reduce端合并,然后由reduce函数处理,reduce任务的结果通常存储在hdfs中。