MapReduce

作者: 陈超Terry的技术屋 | 来源:发表于2019-07-08 12:11 被阅读0次

MapReduce任务执行过程

MapReduce物理实现

  1、一个数据块对应1~N个分片,默认是一个。

2.一个分片split对应一个Mapper

3.Mapper执行的结果,写到内存缓冲区,超过80%后,写入镜像硬盘。写入的时候,可以分区和排序

a.实现分区,需要实现扩展Partitioner类。

    Job要调用2个方法:

    //分区规则

    job.setPartitionerClass(EmpDeptnoPartitioner.class);

    job.setNumReduceTasks(3);

b.排序,比较的Key要实现WritableComparable接口

4.合并Combiner(可选项),合并可大幅度减少数据量

   合并不一定适合所有情况。

   比如:求1、2、3的平均值,正确2.5;如果先算1、2的平均值是1.5,在算1.5、3的平均值是2.25,是错误的

5、Reduce是合并Mapper结果。

shuffle的过程,包含从分片开始,到Mapper的结束。

MapReduce

MapReduce&Spark

   Spark比MapReduce运行速度快:MapReduce产生5次的io;Spark只有2次io。

   如果断电,Spark的数据会丢失,但是MapReduce不回。

相关文章

网友评论

      本文标题:MapReduce

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