mapreduce 基础内容

MapReduce:分布式计算框架,用来分解大数据量的处理

Map阶段对数据集上的独立元素进行指定的操作,生成键值对形成中间结果,Reduce阶段对中间结果中相同的键的所有值进行规约,以得到最终的结果。

优点:

1)易于编程:简单的实现一些接口

2)可扩展性当计算资源不足时,通过增加机器可以扩展他的计算能力

3)高容错性:当一台机器挂了,会把机器上的计算任务转移到另外的一个节点上

缺点:不适合实时的统计处理(流式计算),MapReduce处理的数据是静态的。例如:处理历史数据,(因为每次的运算结果都是到磁盘,如果再次处理要先进行读磁盘)

我们先认识以下几类:

1)Mapper:是一个泛型类型,有四个形参,分别是map函数的输入键、输入值、输出键、输出值。泛型类型的形参只能是引用类型,不能是原始类型(如int、double、char)输出类型为(key-Value pair)

2)Shuffle:数据的迁移Map到Reduce阶段。

3)Combine:(局部统计:针对的是一个map的统计,最小化对数据的迁移)。

4)Partitioner:是分区处理器他把key的hash拿到值对3取模,如果值为0放到第一个Reducer,如果值为1放入第二个Reducer,如果值为2放入第三个Reducer,不管每个mapper输送过来的key,只要key相同就会进入同一个Reducer。

5)Reduce:进行的一个全局统计接受每一个Map的统计,按照所有的key值拿过来进行统计。

MapReduce基本原理

 

1)map:读取的数据进入到环状缓冲区(100m)

读到80%,会将缓冲区的文件传入磁盘,当缓冲区写到磁盘的时候会进行分区,排序,combin会进行分区排序,而溢出的文件会生成溢出文件,最后会将这些文件统计进行排序分区,等待reduce前来取走

2)reduce:根据hash计算好的map去取值,然后合并文件,按照内部的k/v进行归并排序,再根据key进行分组。

posted on 2019-07-24 23:23  来勒  阅读(184)  评论(0编辑  收藏  举报

导航