zoukankan      html  css  js  c++  java
  • MapReduce

    MapReduce 是适合海量数据处理的编程模型。Hadoop是能够运行在使用各种语言编写的MapReduce程序: Java, Ruby, Python, and C++. MapReduce程序是平行性的,因此可使用多台机器集群执行大规模的数据分析非常有用的。

    MapReduce程序的工作分两个阶段进行:

    1. Map阶段
    2. Reduce 阶段

    输入到每一个阶段均是键 - 值对。此外,每一个程序员需要指定两个函数:map函数和reduce函数

    整个过程要经历三个阶段执行:

    这些数据经过以下几个阶段

    输入拆分:

    输入到MapReduce工作被划分成固定大小的块叫做 input splits ,输入折分是由单个映射消费输入块。(注意这里的切片和hdfs中把文件切成多个block不一样,hdfs是物理切片,这里只是逻辑切片)

    映射 - Mapping

    这是在 map-reduce 程序执行的第一个阶段。在这个阶段中的每个分割的数据被传递给映射函数来产生输出值。在我们的例子中,映射阶段的任务是计算输入分割出现每个单词的数量(更多详细信息有关输入分割在下面给出)并编制以某一形式列表<单词,出现频率>

    重排

    这个阶段消耗映射阶段的输出。它的任务是合并映射阶段输出的相关记录。在我们的例子,同样的词汇以及它们各自出现频率。

    Reducing

    在这一阶段,从重排阶段输出值汇总。这个阶段结合来自重排阶段值,并返回一个输出值。总之,这一阶段汇总了完整的数据集。

    在我们的例子中,这个阶段汇总来自重排阶段的值,计算每个单词出现次数的总和。

     

    参考资料

    https://www.yiibai.com/hadoop/intro-mapreduce.html

  • 相关阅读:
    Celery详解
    JWT详解
    进程及进程池
    多线程详解
    python常用模块之os模块的用法
    python常用模块之paramiko与ssh
    reflect 反射
    http 静态文件
    模板渲染语言
    http web 开发
  • 原文地址:https://www.cnblogs.com/xumaomao/p/11451900.html
Copyright © 2011-2022 走看看