MapReduce

统计词频 为什么做? 比如每日十大主题
1。 单机HashMap + for 循环

2。 多台机器for循环 很多人可能忘了做并行汇总
3。 多台机器Map + Reduce 就是说汇总的时候也是多台机器一起处理(Reduce 合的过程)

几个步骤 :

Input, 设定好输入文件
Split, 系统帮我们尽量均分到每台机器
map, 实现代码
传输整理, 系统帮你整理 (Partition Sort , Fetch + Merge Sort)
Reduce,实现代码
Output, 设定输出
leetcode map reduce 题
Reduce的输入就是Map的输出
Map Reduce的函数的输入输出
Map输入 : key :文章存储地址, Value: 文章内容
Reduce输入: key : map输出的 key, value : map输出的value

机器管理形式

map reduce的 机器采用什么样的管理形式 ? peer to peer 还是master to slave
这里常用master slave

map reduce 的输出一定理key和value的形式
https://www.lintcode.com/problem/word-count-map-reduce/description

其他问题
多少台机器?

Map多少台, Reduce多少台。

机器越多越好?

启动机器的时间也变长了。
key的数目就是key的上限。

遇到i, you, the 怎么办?

设为stop words

传输整理

1。排好序 (不需要哈希表了)
2。 分类 (每台机器处理的单词较少)

内排序 vs 外排序
Merge k sorted list.

用map reduce实现inverted index

倒排索引 lintcode上有道题

用map reduce实现anagram

你可能感兴趣的:(MapReduce)