hadoop MapReduce

本质思想:分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果。(reduce)

MapReduce运行流程

JobTracker:作业的管理者

将作业分解成一堆任务(MapTask和ReduceTask),分配给TaskTracker运行,

作业的监控,容错处理,在一定时间间隔内JT没有收到TT的心跳信息,则该TT上的任务会被指派到其他TT上运行。

TaskTracher:任务的执行者

在TT上执行我们的Task(MapTask和ReduceTask)

执行/启动/停止作业,发送心跳信息给JT

MapTask:自己开发的map任务交由Task处理

解析每条记录的数据,交给自己的map方法处理

将map的输出结果写到本地(有些作业仅有map没有reduce==>HDFS)

ReduceTask:

将Map Task输出的数据进行读取

按照数据分组传给我们自己编写的reduce方法编写。

MapReduce的局限性:

1. 代码繁琐

2. 只能够支持map和reduce方法

3. 执行效率低

4. 不适合迭代多次,交互式,流式的处理

原文地址:https://www.cnblogs.com/zenan/p/8626127.html