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