Hadoop中MapReduce运行机理有些地方不明白

我们都知道,MapReduce处理的是经过划分的输入分片(input split)。但小弟有一事不明:以大家都很熟悉的WordCount程序为例,在此例中是以一行为处理单位写的map与reduce函数,但写程序的人怎么知道Hadoop的MapReduce在处理这个程序时就会以一行为一个处理单位,即一行生成一个task呢?还是我哪里理解的不对呢?请各位赐教啊~~

作者: obamaxys2010   发布时间: 2011-02-26

首先纠正你的一个错误,不是“一行生成一个task”而是一个split生成一个task

然后map阶段的key-value对的格式是由输入的格式所决定的,如果是默认的TextInputFormat,则每行作为一个记录进程处理,其中key为此行的开头相对于文件的起始位置,value就是此行的字符文本 
例如一个Mapper<Object, Text, LongWritable, AstroRecord>,我们可以看到输入的值是Text类型的

作者: jmanshow   发布时间: 2011-03-17