目录
MapReduce 简介
MapReduce 是现今一个非常流行的分布式计算框架,它被设计用于并行计算海量数据。第一个提出该技术框架的是 Google 公司,而 Google 的灵感则来自于函数式编程语言,如 LISP、Scheme、ML 等。
MapReduce 框架的核心步骤主要分两部分:Map 和 Reduce。当你向 MapReduce 框架提交一个计算作业时,它会首先把计算作业拆分成若干个 Map 任务,然后分配到不同的节点上去执行,每一个 Map 任务处理输入数据中的一部分,当 Map 任务完成后,它会生成一些中间文件,这些中间文件将会作为 Reduce 任务的输入数据。Reduce 任务的主要目标就是把前面若干个 Map 的输出汇总到一起并输出。
MapReduce 流程分析
1.每个输入分片会让一个 map 任务来处理,默认情况下,以 HDFS 的一个块的大小(默认为 128M)为一个分片,当然我们也可以设置块的大小。map 输出的结果会暂时放在一个环形内存缓冲区中(该缓冲区的大小默认为 100M,由 io.sort.