欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MapReduce计算框架初体验!!

程序员文章站 2022-06-15 17:15:23
...

1.1.理解MapReduce思想
MapReduce思想在生活中处处可见。或多或少都曾接触过这种思想。MapReduce的思想核心是“分而治之”,适用于大量复杂的任务处理场景(大规模数据处理场景)。即使是发布过论文实现分布式计算的谷歌也只是实现了这种思想,而不是自己原创。
Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。
Reduce负责“合”,即对map阶段的结果进行全局汇总。
这两个阶段合起来正是MapReduce思想的体现。
MapReduce计算框架初体验!!
MapReduce最大的亮点在于通过抽象模型和计算框架把需要做什么(what need to do)与具体怎么做(how to do)分开了,为程序员提供一个抽象和高层的编程接口和框架。程序员仅需要关心其应用层的具体计算问题,仅需编写少量的处理应用本身计算问题的程序代码

需求:计算每一行偏移量的总和

27 41 39 29 51 45 24 28 56 52 29 51 18 25 19 10 52 37 18 25 23 52 19 33 59 24 39 58 51 12 

44 10 42 19 35 28 39 33 58 45 28 35 26 55 32 33 27 40 10 31 42 15 41 56 42 47 40 45 28 52 

52 28 50 12 42 28 17 50 31 33 42 14 34 19 23 22 40 21 54 43 52 29 38 53 34 28 11 15 25 44 

27 27 43 58 24 12 33 45 39 43 19 57 38 55 54 29 28 58 36 44 59 26 27 21 31 55 29 53 39 38 

58 52 46 37 20 49 10 28 15 24 35 38 14 44 59 48 42 18 59 38 43 23 19 28 30 24 36 10 30 15 

1.2编写MapReduce计算框,程序员仅仅只需要编写Map和Reduce后在编写驱动使整体串联即可
MapReduce计算框架初体验!!
1.3创建3个类分别表示Map、Reduce、驱动。先编写WordCountMap实现

1、实例一个class 继承Mapper<输入的key的数据类型,输入的value的数据类型,输出的key的数据类型,输出的
value的数据类型,> 2、重写map方法 map(LongWritable key, Text value, Context context)
key: 行首字母的偏移量
value: 一行数据
context:上下文对象
3、根据业务需求进行切分,然后逐一输出
MapReduce计算框架初体验!!
1.4WordCountReduce实现
1、实例一个class 继承Reducer<输入的key的数据类型,输入的value的数据类型,输出的key的数据类型,输出的
value的数据类型,> 2、重写reduce方法 reduce(LongWritable key, Iterable values, Context context)
key: 去重后单词
values: 标记的1(好多个1,key出现几次就有几个1)
context:上下文对象
3、遍历values 进行汇总计算
MapReduce计算框架初体验!!
1.5实现WordCountDriver驱动步骤:

//实列一个Job 对象
//指定本次Job运行的主类
//指定本次Job 实现的mapper 和 reduce 类
//指定本次Job map输出的类型
//指定本次Job reduce输出的类型
//指定数据读取输入路径 和程序运行后结果输出的存放路径
//提交Job
MapReduce计算框架初体验!!
MapReduce计算框架初体验!!
正常运行结果如下
MapReduce计算框架初体验!!
,在查看指定路径结果MapReduce计算框架初体验!!
表明成功MapReduce计算框架初体验!!