多语言展示
当前在线:1791今日阅读:57今日分享:41

大数据技术学习路线指南:[8]MapReduce是什么

MapReduce的厉害之处在于高效完整地处理大数据。这是只有MapReduce架构才能完成的事情!等待让我们荒老,但是速度让我们更有价值!本节介绍的是Hadoop中利器之一MapReduce的工作机制,我们正在进入大数据计算的核心区域。
工具/原料

多了解点新技术总不是坏事!

MapReduce工作机制
1

MapReduce的主体是两个函数Map()和Reduce(),Map负责清洗数据,Reduce负责数据分析并输出最终结果,而且这两个功能之间并非一对一的关系,可以根据具体业务选择匹配关系。

2

Map函数输入:键值关系的数据队列,键是每段内容开头的偏移量。处理:从输入中抽取出自定义的关键字段。这个处理过程可以很简单,也可以很复杂。输出:键值关系的数据队列,通常是保存在硬盘上,而不是HDFS中。因为这个数据集只是个中间过程,计算结束时需要被删除。

3

Reduce函数输入:Map的输出结果经过MapReduce框架处理之后分发给Reduce函数,因为通常一个Reduce函数需要拿到完整的数据集之后才能开始分析。处理:这一步的分析处理将是最为艰难和富有价值的环节。根据不同业务指标定义处理函数。输出:输出自定义的格式文件,并且保存在HDFS上。

4

Combiner函数输入:Map的输出结果未经过MapReduce框架处理之后直接传送给Combiner函数。处理:Combiner函数着手做合并归类和排序等处理,经过处理之后,数据集大大缩小。输出:这时的输出结果才传送给MapReduce架构处理中心。解决问题:减少带宽传输压力!

MapReduce的使用
1

首先要明确完成一个MapReduce最小的任务都包含哪些具体工作!部署Hadoop架构,在HDFS系统上分发要处理的数据集,定义Map和Reduce两个函数,配置相关路径和执行顺序。编译生成处理小包,再由Job分发给不同的服务器处理。最终收集整个输出结果!!

2

部署Hadoop架构这一步骤极其简单,代价不菲。因为它需要N台服务器集群。并且通过Hadoop架构连接起来。

3

由于可能会存在多个Reduce函数的情况,因此Map函数的处理结果将会被克隆复制,并且保存到不同的分区,确保每个Reduce处理的数据集是一样的。

4

MapReduce支持多种语言来表达,Java/Ruby/Python等,另外也有直接支持MapReduce的编程语言:Pig/Hive/Scalding等

5

MapReduce的使用已经基本可以解决大部分超级计算。不过它也有一个不可忽视的前提,就是业务分析任务是可拆解的。但也不用太担心,因为这种事情很少会发生!

注意事项

请完整阅读大数据技术学习路线指南系列!

推荐信息