MapReduce介绍

MapReduce介绍MapReduce是Google流行的一种并行编程技术。它用于处理大量数据。仅通过将工作并行分配给多台机器,就可以在合理的时间内完成这种处理。每台机器都处理一小部分数据。MapReduce是一种编程模型,使开发人员可以专注于编写处理数据的代码,而不必担心并行执行的细节。MapReduce需

大家好,欢迎来到IT知识分享网。MapReduce介绍

MapReduce是Google流行的一种并行编程技术。 它用于处理大量数据。 仅通过将工作并行分配给多台机器,就可以在合理的时间内完成这种处理。 每台机器都处理一小部分数据。

MapReduce是一种编程模型,使开发人员可以专注于编写处理数据的代码,而不必担心并行执行的细节。

MapReduce需要将要处理的数据建模为键值对。 开发人员编写了map函数和reduce函数的代码。

MapReduce运行时为每个键/值对调用map函数。 映射功能将键值对作为输入,并产生另一个键值对的输出。

MapReduce运行时通过键对映射函数的输出进行排序和分组。 然后,它调用将其传递给键的reduce函数以及与该键关联的值的列表。 为每个键调用reduce函数。 reduce函数的输出是键值对。 该值通常是聚合值或通过处理为输入键传递的值列表而计算出的值。 对于由map函数生成的每个中间键,调用reduce函数。 reduce函数的输出是必需的结果。

例如,假设您有大量的日志文件,其中包含某些事件(例如访问帐户)的审核日志。 您需要找出过去10年中每个帐户被访问了多少次。
假定日志文件中的每一行都是审核记录。 我们正在逐行处理日志文件,map和reduce函数如下所示:

  1.  
    map(key , value) {

  2.  
    // key = byte offset in log file

  3.  
    // value = a line in the log file

  4.  
    if ( value is an account access audit log) {

  5.  
    account
    number = parse account from value

  6.  
    output key = account
    number, value = 1

  7.  
    }

  8.  
    }

  9.  
     
  10.  
    reduce(key, list of values) {

  11.  
    // key = account number

  12.  
    // list of values {1,1,1,1…..}

  13.  
    for each value

  14.  
    count = count + value

  15.  
    output key , count

  16.  
    }

每个日志文件中的每一行都会调用map函数。 不相关的行将被忽略。 从相关行中解析出帐号,并输出一个值1。MapReduce运行时按帐号对输出进行排序和分组。 为每个帐户调用reduce函数。 reduce函数汇总每个帐户的值,这是必需的结果。

MapReduce作业通常在计算机集群上执行。 每台机器执行一个任务,该任务可以是映射任务,也可以是归约任务。 每个任务都在处理数据的子集。 在上面的示例中,假设我们从一组大型输入文件开始。 MapReduce运行时将输入数据分为称为分割或碎片的分区。 每个拆分或碎片均由计算机上的映射任务处理。 每个映射任务的输出均按键排序和分区。 来自所有映射的输出被合并以创建输入到reduce任务的分区。

可以有多台计算机,每台计算机都运行简化任务。 每个reduce任务都有一个要处理的分区。 该分区可以具有多个键。 但是每个键的所有数据都在1个分区中。 换句话说,每个键只能处理1个缩减任务。

机器数量,映射任务数量,reduce任务数量以及其他几项都是可配置的。

对于需要对大数据集进行某些处理的问题,MapReduce非常有用。 该算法可以分解为map和reduce函数。 MapReduce运行时负责将处理分配到多台计算机并汇总结果。

Apache Hadoop是mapreduce的开源Java实现。 请继续关注有关使用hadoop的有关mapreduce的未来博客/教程。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/33172.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信