MapReduce是分布式计算框架,他和HDFS一样也是hadoop的重要组成部分
它的产生背景是在web2.0时代,在数据量的指数级增长下,单机扩内存的方式已经不能满足计算需求,所以诞生了MapReduce
二.特点分布可靠,对数据集的操作分发给多个节点实现可靠性,每个节点周期性返回完成的任务和最新状态
封装了实现的细节,基于api编程
提供跨语言的编程能力
三.运行流程 1.主要任务 3.1.1数据划分和计算任务调度将数据划分为多个数据块,每个数据块对应一个任务,自动调度节点来处理数据块
3.1.2数据/代码相互定位(一般是代码找数据)本地化数据处理,当无法进行本地化数据处理时,才会将数据发送有代码的服务器 上进行处理
3.1.3系统优化为了减少通信开销,中间数据进入reduce节点前会进行一定的合并处理,一个 reduce节点所处理的数据可能来自多个map节点
2.运行流程提交代码,对数据进行切片
master调度worker执行map任务
workker读取切片
worker执行任务,将输出结果保存到本地
master调度worker执行reduce任务,reduce worker读取输出文件
执行reduce任务,将任务输出到HDFS上
3.MapReduce api开发流程搭建环境
基于MapReduce框架编写代码,由Map,Reduce,Driver三部分组成
编译打包
上传至本地
yarn jar命令执行