一、MapReduce概述
1.MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题.
2.MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算,非常简单。
3.这两个函数的形参是key、value对,表示函数的输入信息。
二、MapReduce特点
易于编程
良好的扩展性
高容错性
适合PB级以上海量数据的离线处理
三、MapReduce—不擅长的方面
1.实时计算
像MySQL一样,在毫秒级或者秒级内返回结果
2 流式计算
MapReduce的输入数据集是静态的,不能动态变化
MapReduce自身的设计特点决定了数据源必须是静态的
3 DAG(有向无环图)计算框架
多个应用程序存在依赖关系,后一个应用程序的输入为前一个的输出
四、常见MapReduce应用场景
1 简单的数据统计,比如网站pv、uv统计
2 搜索引擎建索引
3 海量数据查找
4 复杂数据分析算法实现
聚类算法
分类算法
推荐算法
图算法