MapReduce学习

在 Hadoop 平台中,MapReduce 负责处理并行编程中的分布存储、工作调度、负载均衡、容错等工作。
把处理过程高度抽象成 Map 和 Reduce 两个函数。
Map 负责把大的任务分解成多个小任务,Reduce 负责把小任务的处理结果汇总。
Hadoop 中用于执行 MapReduce 的机器有两个:JobTracker 和 TaskTracker。
JobTracker:调度任务。
TaskTracker:跟踪任务的执行情况。
最简单的 MapReduce 程序至少包含3个部分:一个 Map 函数、一个 Reduce 函数、一个 Main 函数。
MapReduce 程序中的数据可以来自多个数据源,如本地文件、数据库、HDFS 等,最常用的是 HDFS。

计算过程

1、拆分数据(split)

属于 Map 阶段。
逐行读取文件数据,得到一系列 Key-Value。

2、执行 Map 函数

将分割好的 Key-Value 交给用户定义的 Map 函数进行处理,形成新的 Key-Value。

3、Map 端排序与合并

Map 端按照 Key 值排序。
执行合并(combine)过程,得到 Map 端的最终输出。

4、Reduce端排序与处理

Reduce 端对从 Map 端接收的数据进行排序。
排序结果交给用户自定义的 Reduce 函数进行处理,得到新的 Key-Value,作为最终结果输出。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容