美文网首页
Java的MapReduce实现:Mapper详解

Java的MapReduce实现:Mapper详解

作者: 追寻者的小憩书铺 | 来源:发表于2018-09-11 22:11 被阅读340次

了解了MapReduce在Java中实现的整体架构之后,我们先来看一个MapReduce最开始启动的组件:Mapper。

原理


详细的原理介绍已经在系列的另一篇文章《5分钟掌握大数据:MapReduce》里面说过了,下面我们简单介绍一下:

Map的任务是处理原始数据、为数据打标签、对数据进行分发。

详细点说,就是对输入的原始数据进行一定的处理,比如筛选过滤选出所需要的数据集;然后对这部分数据按照业务的逻辑进行打标签(key),等待被分发给对应的Reduce进行处理。

业务逻辑是指:如果你要统计一天的销售额,那就按天分配;如果你要统计一个省份的人口,那就按照省份分配。

代码详解


在进行具体的业务代码编写之前,让我们先看一下Java中对于Map的实现。

我们先来精简一下最简单的逻辑,来看看java中如何定义的Mapper

java中Mapper精简定义

1 传入的四个参数:输入输出类型说明,详情见另一篇文章。

2 内部实现:

声明了类Context,传递了四个泛型,分别是输入的key类型、输入的value类型、输出的key类型、输出的value类型。

定义了四个方法:

setup:定义Map的启动工作,比如读入一些配置、进行一些变量的初始化等

map:定义实际的mapper阶段功能,比如数据读入、处理、打标签、分发等

cleanup:定义mapper阶段之后收尾工作,比如多路输出等。

run:实际执行程序的方法,先调用setup完成启动工作,然后调用map完成实际的mapper阶段功能,在所有map工作都完成之后,调用cleanup完成收尾工作。

如何写Mapper


最小实现

MiniTest.java

java中map的最小实现

接下来我们一行一行的来看:

java中map的最小实现的注释版

了解了最小实现之后,我们来看一个最经典的例子:WordCountMapper.java

WordCount在java中的map实现

补充:官方完整定义


Mapper官方定义

文集链接

30分钟学会java编写mapreduce

文章链接

5分钟掌握大数据:MapReduce

Java的MapReduce实现:Mapper详解

Java的MapReduce实现:Reduce详解

Java的MapReduce实现:Combine详解

Java的MapReduce之计数器使用

相关文章

网友评论

      本文标题:Java的MapReduce实现:Mapper详解

      本文链接:https://www.haomeiwen.com/subject/gaxcgftx.html