zoukankan      html  css  js  c++  java
  • 【大数据系列】MapReduce详解

    MapReduce是hadoop中的一个计算框架,用来处理大数据。所谓大数据处理,即以价值为导向,对大数据加工,挖掘和优化等各种处理。

    MapReduce擅长处理大数据,这是由MapReduce的设计思想决定的“分而治之”。

    1)Mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”来处理。“简单的任务”包含三层含义:一是数据或计算的规模相对原任务要大大缩小;而是就近计算原则,即任务会分配到存放着所需数据的节点上进行计算;三是这些小人物可以并行计算,彼此间几乎没有依赖关系。

    2)Reducer负责对map节点的结果进行汇总。至少需要多少个Reducer,用户可以根据具体问题,通过在mapred-site.xml配置文件里设置参数mapred.reduce.tasks的值,缺省值为1.

    MapReduce框架运转在<key,value>键值对上,也就是桌,框架把作业的输入看成是一组<key,value>键值对,通用也产生一组<key,value>键值对作为作业的输出,这两组键值对有可能是不同的。

    论文:http://www.allendowney.com/ss08/handouts/dean08mapreduce.pdf

    Map阶段:首先是读数据,数据来源可能是文本文件,表格,MySQL数据库。这些数据通常是成千上万的文件(叫做shards),这些shards被当做一个逻辑输入源。然后Map阶段调用用户实现的函数,叫做Mapper,独立且并行的处理每个shard。对于每个shard,Mapper返回多个键值对,这是Map阶段的输出。

    Shuffle阶段:把键值对进行归类,也就是把所有相同的键的键值对归为一类。这个步骤的输出是不同的键和该键的对应的值的数据流。

    Reduce阶段: 输入当然是shuffle的输出。然后Reduce阶段调用用户实现的函数,叫做Reducer,对每个不同的键和该键的对应的值的数据流进行独立、并行的处理。每个reducer遍历键对应的值,然后对值进行“置换”。这些置换通常指的的是值的聚合或者什么也不处理,然后把键值对写入数据库、表格或者文件中。

  • 相关阅读:
    vue.js实战——.native修饰符
    vue.js实战——props数据验证(自定义构造器检测)
    vue.js实战——props单向数据流
    vue组件之嵌套
    vue非父子组件之间的通信——发布订阅模式,总线机制
    脚本加载优化方法
    文字溢出时,实现在末尾显示三个点省略效果
    1-stm32 gpio库函数
    2-C语言 排序算法
    电子工程师扫盲
  • 原文地址:https://www.cnblogs.com/dream-to-pku/p/7274374.html
Copyright © 2011-2022 走看看