统计词频 为什么做? 比如每日十大主题
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上有道题
网友评论