大数据全知识点讲解之Mapreduce
大数据全知识点讲解之Mapreduce
Mapreduce介绍
MapReduce是一个分布式计算框架
它将大型数据操作作业分解为可以跨服务器集群并行执行的单个任务。
起源于Google
适用于大规模数据处理场景
每个节点处理存储在该节点的数据
每个job包含Map和Reduce两部分
Mapreduce设计思想
- 分而治之
简化并行计算的编程模型 - 构建抽象模型:Map和Reduce
开发人员专注于实现Mapper和Reducer函数 - 隐藏系统层细节
开发人员专注于业务逻辑实现
Mapreduce特点
- 优点
易于编程
可扩展性
高容错性
高吞吐量 - 不适用领域
难以实时计算
不适合流式计算
实现WordCount
Mapreduce执行过程
- 数据定义格式
map: (K1,V1) → list (K2,V2)
reduce: (K2,list(V2)) → list (K3,V3) - MapReduce执行过程
Mapper
Combiner
Partitioner
Shuffle and Sort
Reduce
Hadoop V1 MR引擎
- Job Tracker
运行在Namenode
接受客户端Job请求
提交给Task Tracker - Task Tracker
从Job Tracker接受任务请求
执行map、reduce等操作
返回心跳给Job Tracker