大数据全知识点讲解之Mapreduce

Mapreduce介绍

MapReduce是一个分布式计算框架
它将大型数据操作作业分解为可以跨服务器集群并行执行的单个任务。
起源于Google
适用于大规模数据处理场景
每个节点处理存储在该节点的数据
每个job包含Map和Reduce两部分

Mapreduce设计思想

  • 分而治之
    简化并行计算的编程模型
  • 构建抽象模型:Map和Reduce
    开发人员专注于实现Mapper和Reducer函数
  • 隐藏系统层细节
    开发人员专注于业务逻辑实现

Mapreduce特点

  • 优点
    易于编程
    可扩展性
    高容错性
    高吞吐量
  • 不适用领域
    难以实时计算
    不适合流式计算

实现WordCount

大数据全知识点讲解之Mapreduce

Mapreduce执行过程

  • 数据定义格式
    map: (K1,V1) → list (K2,V2)
    reduce: (K2,list(V2)) → list (K3,V3)
  • MapReduce执行过程
    Mapper
    Combiner
    Partitioner
    Shuffle and Sort
    Reduce

大数据全知识点讲解之Mapreduce

Hadoop V1 MR引擎

  • Job Tracker
    运行在Namenode
    接受客户端Job请求
    提交给Task Tracker
  • Task Tracker
    从Job Tracker接受任务请求
    执行map、reduce等操作
    返回心跳给Job Tracker

大数据全知识点讲解之Mapreduce

Hadoop V2 YARN

大数据全知识点讲解之Mapreduce