课程链接:Hadoop大数据平台架构与实践--基础篇
1.MapReduce原理
分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)
问题1:1000副扑克牌少哪一张牌(去掉大小王)
问题2:100GB的网站访问日志文件,找出访问次数最多的IP地址
- 将日志进行切分(比如按时间)
- 各自统计各IP的访问次数
- 进行归约,通过IP值进行Hash映射(相同IP归到同一个reduce)
- 排序结果

2.MapReduce的运行流程
基本概念
- Job & Task
- 一个Job是一个任务(作业),每个Job可分为多个Task,Task分为MapTask和ReduceTask
- JobTracker(master管理节点)
- 作业调度(先到先服务、公平调度器)
- 分配任务、监控任务执行进度(TaskTracker需要给出状态更新)
- 监控TaskTracker状态(是否出现故障)
- TaskTacker

- 客户端提交Job,JobTracker将其置于候选队列
- JobTracker在适当的时候进行调度,选择一个Job,将其拆分多个Map任务和Reduce任务,分发给TaskTracker来做
- 在实际的部署中,TaskTracker和HDFS中的DataNode是同一种物理结点(这样可保证计算跟着数据走,读取数据的开销最小,移动计算代替移动数据)

MapReduce原理与实现
原文:https://www.cnblogs.com/exciting/p/9210891.html