当前位置:   article > 正文

MapReduce程序开发组件说明_.mapreduce 编程组件中,[] 组件主要用于描述输入数据的格式

.mapreduce 编程组件中,[] 组件主要用于描述输入数据的格式

1、WordCount编码回顾

MapReduce编程涉及的主要组件,如下:
InputFormat类:分割成多个splits和每行怎么解析。
Mapper类:对输入的每对<key,value>生成中间结果。
Combiner类:在map端,对相同的key进行合并。
Partitioner类:在shuffle过程中,将中间结果分为N份,每一份都由一个reduce去完成。
Reducer类:对所有的map中间结果,进行汇总、聚合。
OutputFormat类:输出最终结果格式。
wordcount

2、程序运行过程简图

MapReduce程序主要分为两个阶段:Map Task和Reduce Task,开发人员只需实现map()和reduce()两个函数,即可实现分布式计算。
mapreduce

3、程序组件

3.1、第一阶段Map

3.1.1、InputFormat 主要用于描述输入数据的格式,它提供以下两个功能
数据切分:按照某个策略将输入数据切分成若干个split,以便确定 Map Task 个数以及对应的 split。
Mapper数据源:给定某个 split,能将其解析成一个个 key/value 对。
3.1.2、FileInputFormat所有基于文件的 InputFormat 实现的基类。
派生出针对文本文件格式的 TextInputFormat、 KeyValueTextInputFormat 和 NLineInputFormat;针对二进制文件格式的 SequenceFileInputFormat 等。
map

3.2、中间过程Shuffle

shuffle是执行排序、将map运算结果(key-value)传给reducer的过程,目的是保证reducer输入是按键排序的。该过程涉及的组件:分区(Partitioner)、排序(Sorter)、合并(Combiner)。
分区默认类HashPartitioner;合并Combiner是为了减轻reduce压力,故此可以与reducer保持一致。

3.3、第二阶段Reduce

OutputFormat主要用于描述输出数据的格式,它能够将用户提供的 key/value 对写入特定格式的文件中。
reduce

4、MapReduce工作原理

参见中文版:https://yq.aliyun.com/ziliao/466418

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/777845
推荐阅读
相关标签
  

闽ICP备14008679号