mapreduce

作者: 程序男保姆 | 来源:发表于2020-08-21 10:10 被阅读0次
  • MapReduce概述

    1.)源于google的MapReduce论文,论文发表于2004年
    2.)Hadoop Map Reduce是Google Mapreduce 的克隆版本
    3.)MapReduce优点:海量数据离线处理 & 易开发 & 易运行
    4.)MapReduce缺点:实时流式计算

  • MapReduce编程模型-执行步骤

    1.)准备map处理的输入数据
    2.)Mapper处理
    3.)Shuffle
    4.)Reduce处理
    5.)结果输出

  • 核心概念

    1.)Split:交由Map Reduce作业来处理的数据块,是MapReduce中最小的计算单元
    2.)HDFS:block size 是HDFS中最小的存储单元 128M
    3.)默认情况下:他们俩是一一对应的,也可以手动设置

image.png

一个完整的mapReduce程序在分布式运行时有三个类实例进程

  1. mrAppMater 负责整个程序的过程调度及状态协调。
  2. mapTask 负责map阶段的整个数据处理流程。
  3. reduceTask 负责reduce阶段的整个数据处理流程。

数据类型对比 Java vs Hadoop


image.png
  1. map阶段

    1. 用户自定义的mapper要继承自己的父类。
    2. mapper的输入数据是KV对的形式(KV的类型可自定义)
    3. mapper中的业务逻辑写在map()方法中。
    4. mapper的输出数据是KV对的形式(KV的类型可自定义)
    5. map()方法(MapTask进程)对每一个<K,V>调用一次。
  2. reducer阶段

    1. 用户自定义的reducer要结成自己的父类。
    2. reducer的输入数据类型对应mapper的输出数据类型,也是KV
    3. reducer的业务逻辑写在reducer()方法中。
    4. reduceTask进程对每一组相同k的<k,v>组调用一次reduce()方法
  1. dirver阶段
    相当于yarn集群的客户端,用于提交我们整个程序到yarn集群,提交的是封装类mapreduce 程序相关运行参数的job对象。

相关文章

网友评论

      本文标题:mapreduce

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