原文:http://blog.csdn.net/smile0198/article/details/20578389
1、MR解决的问题的特点
MR是应大数据的背景产生,其解决的问题的共性为:大问题可以被分解为许多子问题,且这些子问题相对独立,将这些子问题并行处理完后,大问题也就被解决。是用来分治、分解的思想。
2、Google论文中提及的典型应用:
URL访问率统计,分布式grep,分布式排序,倒序索引构建,Web连接图反转等。
3、从书中看到的几个比较复杂的应用:
(1)、TopK问题
问题:在搜索引擎中,查出最近最热门的K个查询词。
解决:将问题分解为两个MR,统计词频(相当于wordcount)和找出词频最高的前K个查询词,第二个输入依赖于第一个输出。在第二部分,每个map找出自己的TopK,然后再reduce阶段进行合并,找出最终的TopK。
(2)、K-means 聚类 (k均值)
(3)、贝叶斯分类
后两个问题,我还没有搞清楚怎么实现,等我研究明白了,在po出来
4、MR难以解决的问题
(1)、斐波那契数列,由于算法是递归实现的,下一个结果依赖于前面的结果,无法分解为独立的子问题,所以不能mr
(2)、层次类聚
通过不断的迭代,按距离来合并,要计算两两对象间的距离。
参考《hadoop技术内幕》