03Hadoop的MapReduce
Hadoop中的MapReduce
作用
提供分布式的计算模型
实现思想
分而治之
组成
1.Map
作用:负责将任务进行切分,当map拿到一个job(即任务进程)之后会将这个任务进程拆分成多个小任务(即task任务),然后将每个task任务分发到不同的节点上运行
1.mapreduce程序中task任务分为两种maptask和reducetask
2.shuffle
作用:map中每个task会产生运行结果,这些结果最终要给reduce进行合并,此时shuffle就相当于一个临时中间存储计算阶段存在于map和reduce之间(mapreduce的核心);
3.Reduce
作用:将所有子任务的结果进行合并
hadoop中MapReduce程序运行的五个阶段
1.input:将要mapreduce要处理的文件读取进来,默认读取的是hdfs上的数据
2.map:分片和过滤类的操作,一部分一部分的处理,挨个执行每个map task;
3.shuffle:
4.reduce:将多个map task的结果进行处理合并,也可以在reduce中设置一些执行业务
5.output:默认输出到hdfs,也可以自定以输出到其他地方比如mysql中
hadoop中的MapReduce程序仅适合离线批处理