`

mapreduce

阅读更多
MapReduce是处理/产生海量数据集的编程模型。,通过map()函数处理key-value对,产生中间key-value对,使用reduce()函数合并相同key的中间key/value中的value。

大数据量处理中的几种情况可使用MapReduece来解决:
(1)URL访问频率统计,map函数处理请求和应答(URL,1)的log,reduce函数把具有相同URL的值合并,输出格式为成对的(URL,总个数);
(2)逆向Web-Link图:map函数输出所有包含指向目标URL的网页,用(目标URL,源URL)这样的结构对输出。reduce函数聚合所有关联相同目标URL的列表、源URL列表,输出格式为(目标URL,list(源URL))。
(3)逆序索引,和(2)中相似,map函数分析文档,产生(word,document)序列组,reduce函数处理指定word的所有序列组,并且对相关documentID进行排序,输出一个(word,list(document))组。

mapreduce函数包括一个主控程序master和作业程序worker。(1)首先把输入分成M块,(16M-64M),master把M个map任务和R个reduce任务分配给worker。
(2)worker读取map任务处理输入,分析出key/value对,传递给用户定义的reduce函数,map产生的中间结果暂存到内存。
(3)map函数缓冲到内存的结果被定时刷写到本地硬盘上,通过分区函数,写入R个区中。中间结果存储的硬盘位置发送回master,master把位置信息传送给reduce函数的worker。
(4)执行reduce函数的worker得到中间ley/value对的位置时,worker调用远程方法读取中间数据,当reduce函数的worker读取了所有中间数据,就是用中间数据的key进行排序,如果中间结果集太大,则是用外排序的方法
(5)reduce函数的worker遍历根据中间结果集的key遍历排序后的数据,把key和相关中间结果value集合传递给reduce函数。reduce函数最后把输出结果存放在master机器的一个输出文件中。
(6)map任务和reduce任务执行完毕,master激活用户程序。
(7)以上过程执行完后,mapreduce的执行数据存放在R个输出文件中。

mapreduce的容错

master定期发送命令轮询每一台worker机器,如果一定时间内worker机器没有响应,则master认为该worker失效。将这台worker完成的map任务全部设置成初始空闲状态,被其它worker调度执行。该机器正在处理的map和reduce任务设置成空闲状态,让其它worker重新执行。

失效机器上的map任务需要重新执行。因为中间结果存储在访问失效的这台机器上,导致中间结果不能访问。已经完成的reduce任务不用重新执行,因为结果保存在全局文件系统中。

如果map任务开始由A执行,后失效后由B执行,则所有执行reduce任务的worker都会接到通知,所有需要但是还没来得及从A上读数据的worker都会从B上读取数据。

在master中,会定期设定checkpoint,如果master任务失败,则从上次最后一个检查点开始启动另一个master进程。

map和reduce任务的可靠性由输出
引用
进行原子提交完
成的,每个正在进行的任务把结果写到一个私有的临时文件中,全部写完后,进行提交,把临时文件变成永久保存的文件。
分享到:
评论

相关推荐

    实验项目 MapReduce 编程

    实验项目“MapReduce 编程”旨在让学生深入理解并熟练运用MapReduce编程模型,这是大数据处理领域中的核心技术之一。实验内容涵盖了从启动全分布模式的Hadoop集群到编写、运行和分析MapReduce应用程序的全过程。 ...

    基于MapReduce实现决策树算法

    基于MapReduce实现决策树算法的知识点 基于MapReduce实现决策树算法是一种使用MapReduce框架来实现决策树算法的方法。在这个方法中,主要使用Mapper和Reducer来实现决策树算法的计算。下面是基于MapReduce实现决策...

    学生mapreduce成绩分析

    MapReduce是一种分布式计算模型,由Google在2004年提出,主要用于处理和生成大规模数据集。这个模型将复杂的计算任务分解成两个主要阶段:Map(映射)和Reduce(化简),使得在大规模分布式环境下处理大数据变得可能...

    Hadoop mapreduce实现wordcount

    【标题】Hadoop MapReduce 实现 WordCount MapReduce 是 Apache Hadoop 的核心组件之一,它为大数据处理提供了一个分布式计算框架。WordCount 是 MapReduce 框架中经典的入门示例,它统计文本文件中每个单词出现的...

    【MapReduce篇07】MapReduce之数据清洗ETL1

    MapReduce之数据清洗ETL详解 MapReduce是一种基于Hadoop的分布式计算框架,广泛应用于大数据处理领域。数据清洗(Data Cleaning)是数据处理过程中非常重要的一步,旨在清洁和转换原始数据,使其更加可靠和有用。...

    大数据实验四-MapReduce编程实践

    ### 大数据实验四-MapReduce编程实践 #### 一、实验内容与目的 ##### 实验内容概述 本次实验的主要内容是使用MapReduce框架来实现WordCount词频统计功能,即统计HDFS(Hadoop Distributed File System)系统中多个...

    mapreduce项目 数据清洗

    MapReduce是一种分布式计算模型,由Google在2004年提出,主要用于处理和生成大规模数据集。它将复杂的并行计算任务分解成两个主要阶段:Map(映射)和Reduce(化简)。在这个"MapReduce项目 数据清洗"中,我们将探讨...

    大数据 hadoop mapreduce 词频统计

    【大数据Hadoop MapReduce词频统计】 大数据处理是现代信息技术领域的一个重要概念,它涉及到海量数据的存储、管理和分析。Hadoop是Apache软件基金会开发的一个开源框架,专门用于处理和存储大规模数据集。Hadoop的...

    Hadoop原理与技术MapReduce实验

    (2)打开网站localhost:8088和localhost:50070,查看MapReduce任务启动情况 (3)写wordcount代码并把代码生成jar包 (4)运行命令 (1):把linus下的文件放到hdfs上 (2):运行MapReduce (5):查看运行结果 ...

    Hadoop之MapReduce编程实例完整源码

    一个自己写的Hadoop MapReduce实例源码,网上看到不少网友在学习MapReduce编程,但是除了wordcount范例外实例比较少,故上传自己的一个。包含完整实例源码,编译配置文件,测试数据,可执行jar文件,执行脚本及操作...

    MapReduce求行平均值--MapReduce案例

    在大数据处理领域,MapReduce是一种广泛使用的分布式计算框架,由Google提出并被Hadoop采纳为标准组件。本案例主要探讨如何使用MapReduce来求取数据集的行平均值,这在数据分析、数据挖掘以及日志分析等场景中非常...

    MapReduce基础.pdf

    ### MapReduce基础知识详解 #### 一、MapReduce概述 **MapReduce** 是一种编程模型,最初由Google提出并在Hadoop中实现,用于处理大规模数据集的分布式计算问题。该模型的核心思想是将复杂的大型计算任务分解成较...

    大数据实验5实验报告:MapReduce 初级编程实践

    【MapReduce初级编程实践】是大数据处理中的一项基础任务,主要应用于大规模数据集的并行计算。在这个实验中,我们关注的是如何利用MapReduce来实现文件的合并与去重操作。MapReduce是一种分布式计算模型,由Google...

    hadoop-mapreduce-client-jobclient-2.6.5-API文档-中文版.zip

    赠送jar包:hadoop-mapreduce-client-jobclient-2.6.5.jar; 赠送原API文档:hadoop-mapreduce-client-jobclient-2.6.5-javadoc.jar; 赠送源代码:hadoop-mapreduce-client-jobclient-2.6.5-sources.jar; 赠送...

    MapReduce: Simplified Data Processing on Large Clusters中文版

    MapReduce 编程模型简介 MapReduce 是一种编程模型,由 Jeffrey Dean 和 Sanjay Ghemawat 于 2004 年提出,用于处理大规模数据集的分布式计算。该模型将计算任务分解成两个主要阶段:Map 和 Reduce。Map 阶段将...

    大数据技术基础实验报告-MapReduce编程.doc

    MapReduce 是一种分布式计算模型,由Google提出,主要用于处理和分析海量数据。在这个实验报告中,我们将探讨如何在Eclipse环境中设置和使用MapReduce编程。 首先,为了在Eclipse上编写和运行MapReduce程序,我们...

    MapReduce综合案例(4个)

    MapReduce是一种分布式计算模型,由Google在2004年提出,主要用于处理和生成大规模数据集。它将复杂的并行计算任务分解为两个主要阶段:Map(映射)和Reduce(化简)。在这个综合案例中,我们将探讨四个具体的应用...

    基于MapReduce+Pandas的电影排名与推荐以及数据分析与可视化展示

    基于MapReduce+Pandas的电影排名与推荐以及数据分析与可视化展示 数据科学与大数据技术领域中,电影排名与推荐系统的开发是非常重要的一部分。该系统可以通过对电影数据的分析和处理,提供电影排名和推荐服务,满足...

Global site tag (gtag.js) - Google Analytics