zoukankan      html  css  js  c++  java
  • MapReduce (MRV1)设计理念与基本架构

    MapReduce 是一个分布式计算框架主要由两部分组成编程模型和运行时环境.

    其中编程模型为用户提供了非常易用的编程接口用户只需要像编写串行程序一样实现几个简单的函数即可实现一个分布式程序而其他比较复杂的工作如节点间的通信节点失效数据切分等全部由MapReduce 运行时环境完成用户无须关心这些细节

    编程模型

        它的基本编程模型是将问题抽象成Map Reduce 两个阶段其中Map 阶段将输入数据解析成key/value迭代调用map() 函数处理后再以key/value 的形式输出到本地目录Reduce 阶段则将key 相同的value 进行规约处理并将最终结果写到HDFS

    map() 函数以key/value 对作为输入产生另外一系列key/value 对作为中间输出写入本地

    磁盘MapReduce 框架会自动将这些中间数据按照key 值进行聚集key 值相同用户可

    设定聚集策略默认情况下是对key 值进行哈希取模的数据被统一交给reduce() 函数处理

    reduce() 函数以key 及对应的value 列表作为输入经合并key 相同的value 值后

    生另外一系列key/value 对作为最终输出写入HDFS

    运行时环境

        它的运行时环境由两类服务组成JobTracker TaskTracker其中JobTracker 负责资源管理和所有作业的控制TaskTracker 负责接收来自JobTracker 的命令并执行它

     

    五个编程组件:

    InputFormat

    Mapper

    Partitioner

    Reducer

    OutputFormat

    Block split的关系:

     

    Map Task 执行过程:

    Map Task 先将对应的split 迭代解析成一个个key/value 依次调用用户自定义的map() 函数进行处理最终将临时结果存放到本地磁盘上其中临时数据被分成若干个partition每个partition 将被一个Reduce Task 处理


    Reduce Task
    的执行过程:

    该过程分为三个阶段①从远程节点上读取MapTask 中间结果称为"Shuffle 阶段");②按照key key/value 对进行排序称为"Sort 阶段");③依次读取<key, value list>调用用户自定义的reduce() 函数处理并将最终结果存到HDFS 称为"Reduce 阶段")。

    Hadoop MR作业的生命周期:

    这个过程分为以下5 个步骤

    步骤1 作业提交与初始化

    步骤2 任务调度与监控

    步骤3 任务运行环境准备

    步骤4 任务执行

    步骤5 作业完成

     

    分布式编程的方法:

    适应的场景:

    任务可被分解成相互独立的子问题

    MapReduce 编程模型给出了其分布式编程方法共分5 个步骤

    1迭代iteration)。遍历输入数据并将之解析成key/value

    2将输入key/value 映射map成另外一些key/value

    3依据key 对中间数据进行分组grouping)。

    4以组为单位对数据进行归约reduce)。

    5迭代将最终产生的key/value 对保存到输出文件中

    MapReduce 将计算过程分解成以上5 个步骤带来的最大好处是组件化与并行化

     

     

    MapReduce编程体系结构:

    流式访问、有向图式访问、链式MapperReduce访问、

  • 相关阅读:
    测试同学都应该知道的断言知识...
    自己如何修改Airtest的源码
    如何选择适合你的图像识别算法
    如何测试基于Unity3D引擎的游戏
    Web前端-按钮点击效果(水波纹)
    C# Email 帮助类 EmailHelper
    WinForm 加载大数据时不闪烁的ListView
    LZZ磁力资源搜索4.2.2,整合多个站点,大部分资源都能搜到
    C#7.0新特性和语法糖详解
    6种css3 transform图片悬停动态效果
  • 原文地址:https://www.cnblogs.com/joqk/p/6347543.html
Copyright © 2011-2022 走看看