首先要实现mapreduce就要重写两个函数,一个是map 还有一个是reduce map(key ,value)
map函数有两个參数,一个是key,一个是value
假设你的输入类型是TextInputFormat(默认),那么,你的map函数的输入将会是:
- key : 文件的偏移量(就是values在该文件的位置)
- value: 这是一行字符串(hadoop将文件每一行作为输入)
hadoop会给每一行都运行map函数,map函数要做的,就是要将这一行,依据你要实现的功能(比方wordcount)将它拆成一个个(key,value)
(wordcount的拆法就是,key=单词,value=1)
接着,hadoop会将全部的(key,value)汇总,它会将全部key相同的项合并在一起,而value就是一个list,从而形成了一个新的(key,values),然后将这个发送给reduce函数.
reduce(key,value)
reduce函数相同有两个參数,一个是key,一个是value
通常这个value就是一个list,
reduce函数要实现的功能就是,针对当中一组(key,value),将其依照你要实现的功能,进行运算
(wordcount的做法 ,那么你的key将是一个单词,而value这个list的每一项都是1,仅仅要计算一下有多少个1,那么就知道这个单词的频数是多少了.)
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});