腾讯大王卡网速好慢超慢怎么办

详解MapReduce算法
map()函数把输入数据进行切割(比如分为M块)之后,分布到不同的机器上执行(例如前面介绍的单词统计例子,可以把每一个文件分配到一台机器上执行)。Reduce()函数通过产生的键key(例如可以根据某种分区函数(比如hash(key)
mod R),R的值和分区函数都是由用户指定)将map()的结果集分成R块,然后分别在R台机器上执行。
图2.15是MapReduce算法示意图。当用户程序调用MapReduce函数时,就会引起如下的操作。
(1)&MapReduce函数库首先把输入文件分成M块,每块大概16MB到64MB。接着在集群的机器上执行处理程序。
如图2.14所示,MapReduce算法运行过程中有一个主控程序,称为master。主控程序会产生很多作业程序,称为worker。并且把M个map任务和R个reduce任务分配给这些worker,让它们去完成。
(2)&被分配了map任务的worker读取并处理相关的输入(这里的输入是指已经被切割的输入小块splite)。它处理输入的数据,并且将分析出的键/值(key/value)对传递给用户定义的reduce()函数。map()函数产生的中间结果键/值(key/value)对暂时缓冲到内存。
(3)&map()函数缓冲到内存的中间结果将被定时刷写到本地硬盘,这些数据通过分区函数分成R个区。这些中间结果在本地硬盘的位置信息将被发送回master,然后这个master负责把这些位置信息传送给reduce()函数的worker。
(4)&当master通知了reduce()函数的worker关于中间键/值(key/value)对的位置时,worker调用远程方法从map()函数的worker机器的本地硬盘上读取缓冲的中间数据。当reduce()函数的worker读取到了所有的中间数据,它就使用这些中间数据的键(key)进行排序,这样可以使得相同键(key)的值都在一起。如果中间结果集太大了,那么就需要使用外排序。
(5)&reduce()函数的worker根据每一个中间结果的键(key)来遍历排序后的数据,并且把键(key)和相关的中间结果值(value)集合传递给reduce()函数。reduce()函数的worker最终把输出结果存放在master机器的一个输出文件中。
(6)&当所有的map任务和reduce任务都已经完成后,master激活用户程序。在这时,MapReduce返回用户程序的调用点。
(7)&当以上步骤成功结束以后,MapReduce的执行数据存放在总计R个输出文件中(每个输出文件都是由reduce任务产生的,这些文件名是用户指定的)。通常,用户不需要将这R个输出文件合并到一个文件,他们通常把这些文件作为输入传递给另一个MapReduce调用,或者用另一个分布式应用来处理这些文件,并且这些分布式应用把这些文件看成为输入文件由于分区(partition)成为的多个块文件。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。一种Internet环境下MapReduce计算方法
专利名称一种Internet环境下MapReduce计算方法
技术领域本发明属于分布式计算模型领域,具体涉及Internet环境下一种新的MapReduce计算方法及系统,以及系统中的Map和Reduce任务调度方法。
背景技术继高性能集群计算、网格计算之后,在大规模计算领域,云计算正受到人们的强烈关注。作为云计算的核心技术,MapReduce也受到了广泛关注。MapReduce是Google在2004年提出来的一种处理大规模数据集的并行编程模型,以此来简化分布式系统的编程。应用程序编写人员只需将精力放在应用程序本身,而关于集群的处理问题,包括可靠性、可扩展性、任务并行化、数据分布存储、负载均衡、节点通信等复杂过程被屏蔽,用户不需要关心如何将输入的数据分块,分配和调度。这使得那些没有多少并行计算经验的程序员也可以开发并行应用来处理和分析海量数据。MapReduce系统通过Map (映射)和Reduce (化简)这样两个简单的概念来构成运算基本单元。用户只需编写Map函数和Reduce函数即可实现对大规模海量数据集的并行处理。MapReduce系统可以根据输入数据的大小及作业的配置等信息,自动将该作业初始化为多个相同的Map任务和Reduce任务,分别读取不同的输入数据块并调用Map函数和Reduce函数进行处理。在Map函数中指定对各分块数据的处理过程,在Reduce函数中指定如何对分块数据处理的中间结果进行化简。映射-化简过程如下:
映射(Map)过程: Map (keyl, valuel)----& list (key2, value2)
化简(Reduce)过程:Reduce (key2, list (value2))----& list (value3)`
此外,在Reduce过程之前,一般还包括排序(Sort)过程和合并(Merge)过程。如图1所示,在Map阶段,Map任务读取一个输入(keyl, value I)对,由程序员定义的Map函数对其处理产生一个中间(key2, value2)结果集,并保存在本地。在Reduce阶段,Reduce任务从所有执行Map任务的节点读取中间关键字key2和相关的一个value2集,由程序员定义的Reduce函数对其进行处理,并得到计算结果。在现有技术中,MapReduce系统通常和分布式文件系统相耦合,如Yahoo提出的Hadoop是一种基于Java的MapReduce开源实现,实现了一个分布式文件系统HDFS(HadoopDistributed File System)和MapReduce任务调度框架,大数据经过分片,存储在由工作节点(Worker)所组成的分布式文件系统中。Hadoop通常部署在高可靠集群环境下,用户通过Master提交作业;Master进行任务调度,同时接收Worker的状态汇报;Worker执行Map任务或Reduce任务;Map任务从分布式文件系统读数据分片,执行任务,最后在本地写中间结果;RedUCe任务读Map输出的中间结果,执行任务,最后在分布式文件系统上写输出数据。另一方面,自上世纪九十年代以来,人们目睹了志愿计算的强大计算能力。目前,志愿计算也吸引了越来越多的关注。志愿计算是通过互联网让全球的普通大众自愿捐献个人PC空闲的CPU周期,参与科学计算或数据分析的一种计算方式,实现分散的志愿资源的集成。这种方式为解决基础科学运算规模较大、计算资源需求较多的难题提供了一种行之有效的解决途径。它将许多单独的计算机连接在一起,从而建立一个具有海量计算能力的大系统,这种系统远远超过几台超级计算机的能力。在生物信息学、高能物理、气候预测等多个领域已开始使用这一模式来解决大规模的科学计算问题。最著名的BOINC (伯克利开放网络计算平台)提供了一个志愿计算运行环境。目前全球最大的志愿计算项目SETIOhome就运行在BOINC平台上。该项目注册用户达200多万,活跃用户有20多万,24小时的平均吞吐量达到了惊人的7 PetaFLOPS0此外知名的志愿计算项目还包括 FOLDINGOhome、LHCihome、Einsteinihome、IBM WorldCommunity Grid、ClimatePrediction.net 等。志愿计算的主要工作原理是:提交上来的计算任务被分成若干可以同时处理的小任务,并分配到Internet中志愿者的个人PC上执行。当志愿者向服务器请求任务,服务器给志愿者分配一个任务,待志愿者的任务完成,将计算结果返回至专门的存储系统,然后请求服务器再分配一个新的任务。它的主要特点是,志愿节点容易离线而导致失效,这就要求志愿计算系统要解决容错这一问题。最适合志愿计算的应用场景是对时间不敏感的,如蒙特卡罗模拟、参数扫描、BoT任务(即Bag-of-Tasks,指任务数量巨大,互相之间独立,且每个任务的运算量和对内存及外部存储的要求适中的任务)。其他类型的应用也可在志愿计算平台运行,但是效率不高,且需解决任务分割等难题。通常,针对物理、化学、生物等行业的志愿计算项目服务器端程序通常需要由专业人士来进行开发,且开发难度较大。这就决定了志愿计算模式的应用范围有限,并不是所有应用都可以在志愿计算平台上运行。
有鉴于此,本发明提供一种新的Internet环境下的MapReduce计算方法,具有简单、实用、有效的特点,用以解决在动态易失效的Internet节点上运行可靠的MapReduce作业这一难题。若与志愿计算系统相结合,从而能够扩大志愿计算模式的应用范围,实现在志愿计算平台上运行可靠的MapReduce作业。采用本发明可以充分利用Internet环境下空闲的桌面PC资源,用MapReduce并行计算方法来进行数据处理,借鉴于现有的高可靠集群环境下的MapReduce技术,对用户而言,本发明提供的方法同样屏蔽任务分配、节点通信、节点容错等复杂过程,提供简单的编程方法来开发应用。如图2所示,本发明采用的架构包含三种不同的节点:第一是服务器,包含数据存储服务器、元数据服务器、数据调度器、MR任务调度器这四个不同的服务组件;第二是客户端(用户),也称之为Master节点;第三是众多的工作节点,以志愿者的形式加入系统,也称之为Worker节点。与现有的MapReduce系统不同的是,本发明实施例不依赖于分布式文件系统,而依赖于自己的元数据管理系统和数据存储服务器。在本发明实施例中,系统的主要工作原理如下:
第一步,客户端作为Master节点向数据存储服务器(如HTTP、FTP等服务器)上传待分析处理的大数据;
第二步,客户端提交任务,指定对已存储于数据存储服务器中的大数据进行Map和Reduce 处理;
第三步,经过数据调度器和MR调度器,将Map任务和Reduce任务分配至工作节点上执行;
第四步,工作节点定期以“心跳信号”的方式向MR任务调度器汇报任务执行状态;
第五步,待所有任务完成,最终结果自动返回至客户端。本发明实施例所采用的主要技术方案包括:
(1)在元数据管理基础之上,采用基于元数据的“拉模式”数据调度方法,根据数据属性将数据调度至工作节点;
(2)利用数据驱动的方式,将任务分配与调度转化为数据调度,将Map任务和Reduce任务的容错转化为Map输入数据、中间结果和Reduce输入数据的容错;
(3)利用数据依赖性,来合理控制Map任务得到的中间结果的数据流向;
(4)工作节点可启动多线程同时执行Map任务和Reduce任务;
(5)工作节点采用“心跳信号”的方式向服务器汇报本地存储的数据和任务执行状态,服务器自动检测出慢节点和慢任务,并进行任务重调度。本发明实施例能够实现无需干预,最终结果自动返回给用户;能够实现大规模可扩展性系统,在节点数量上能容纳10万级别的工作节点。本发明解决了 Internet环境下网络地址转换和防火墙等带来的影响,解决了节点的异构性以及节点的动态易失效带来的影响,提供了 Internet环境下一种简单有效的容错MapReduce计算模型与方法。采用本发明,可在校园、企业、政府内利用现有桌面PC构建以私有为目的的MapReduce计算平台来进行海量数据分析,或用于改进志愿计算系统来支持MapReduce计算模型,降低志愿计算系统应用开发的难度。
图1为现有技术中MapReduce系统的总体原理图。图2为本发明提供的在Internet环境下的MapReduce计算系统组成结构图。图3为本发明实施例中工作节点多线程处理原理图。图4为本发明实施例Ping-Pong测试结果。图5为本发明实施例广播与Scatter/Gather测试结果。图6为本发明实施例的可扩展性测试结果。图7为本发明实施例在慢任务检测和多任务副本情况下的性能测试结果。图8为本发明实施例对节点容错的案例分析。
具体实施例方式本发明实施例提供了一种利用Internet环境下的桌面PC进行MapReduce计算的方法、系统。下面结合说明书附图对本发明实施例进行详细说明。如图2所示,Internet环境下MapReduce系统主要包括如下三种不同类型的节点。(I)客户端(Master):将用户编写的并行处理作业提交至服务节点,通过服务节点监控作业状态,自动获取最终执行结果。(2)服务节点(服务器):管理所有的工作节点,并自动将用户作业分解为Map任务和Reduce任务,将任务调度到工作节点执行。具体包括四个服务组件:
①元数据服务器:管理和存储元数据;
②数据存储服务器:即HTTP、FTP服务器,或者BitTorrent协议的Tracker,或者是采用其他新型传输协议的存储服务器;
③数据调度器:接收工作节点的周期性“心跳信号”,对元数据进行解析,根据提取出数据属性,进行数据的分发与传输控制;
④MR任务调度器:接收工作节点的周期性“心跳信号”,对各工作节点的Map任务和Reduce任务进行调度和监控,检测出慢节点和慢任务。(3)工作节点(Worker):主动向服务节点请求执行任务,向服务节点发送周期性“心跳信号”,同时工作节点接收并存储MapReduce的输入/输出数据。本发明实施例采用多维度对系统中的所有数据进行描述,称之为数据属性。数据属性分为两大类:
(1)第一类是常规属性,主要包括:①创建时间;②修改时间所有者;④数据大小;⑤数据类型备注信息等等;
(2)第二类是与数据调度相关的属性,主要包括:①副本数目,定义了该数据在系统中的副本数;②容错标志,定义了是否需要对该数据进行容错;③生命周期,定义了该数据存在于系统中的生命周期;④依赖关系,定义了数据之间的依赖关系,具有依赖关系的两个数据将被存储在同一节点上;⑤传输协议,定义了传输该数据时允许采用的传输协议。这些针对数据的描述作为元数据存储在元数据服务器。在本发明实施例中,采用了内存数据库来存储元数据。在数据属性中,如果有“数据A.依赖性一数据B”,这意味着数据A将会被调度至数据B存储的位置(工作节点),最终数据A和数据B将会存储在同一工作节点上。如果有“容错标志=true”,这即意味着该数据需要容错,当存储该数据的工作节点发生失效错误或失去联系时,服务器将通知另一个工作节点创建一个新副本来代替丢失的副本。本发明实施例中,数据调度器专门负责数据调度。实施例采用了基于元数据的“拉模式”数据调度,抛弃了传统的“推模式”,因为“拉模式”能够突破Internet环境下网络地址转换和防火墙的限制。在“拉模式”下,工作节点处于主动地位,服务器处于被动地位。工作节点主动发起通信过程,服务器被动响应。工作节点利用周期性的“心跳信号”向数据调度器汇报当前存储在本地的数据。作为“心跳信号”的响应,数据调度器与节点有一个数据同步操作,数据调度器扫描系统中所有数据的属性,通知节点是否需要下载数据至本地(由于有新数据到来或有节点失效导致副本丢失)或者删除已存在于本地的数据(由于该数据生命周期已结束),将数据同步与数据调度相耦合。本发明实施例采用{副本数目,容错标志,生命周期,依赖关系,传输协议}五元组的数据属性值,来实现各种数据调度控制,简单而且非常灵活。在本发明实施例中,利用数据依赖关系,来实现合理控制Map任务得到的中间结果的数据流向,准确传输至执行Reduce任务的工作节点,利用数据容错标志,实现任务的容错。下面详细地描述本发明实施例中MapReduce的作业执行流程及任务调度方法。首先,系统初始化。步骤1:服务节点的四个组件全部启动,并创建一个特殊数据称之为MapperToken,其数据属性设置为MapperTokenAttr= { “副本数目”=无穷大}。步骤2:各工作节点启动程序,连接服务器,从而加入系统并分配一个节点ID,工作节点从元数据管理器中查找并下载特殊数据MapperToken,将其存储在本地,以此来标明此节点可以执行Map任务,启动相应的MapTask工作线程。其次,用户Master上传数据。步骤3:用户上传一个大数据,指定数据分块的大小并对其进行数据分块处理,创建一个数据集合DataCollection DC= {dl, d2,…,dn},并为每个数据块设置相同的数据属性 MapInputAttr= { “副本数目 ”=r, “容错标志”=true, “依赖关系” =MapperToken}。然后,用户Master提交MapReduce作业。步骤4:用户指定Map任务得到的中间结果的分区数目R,及分区的规则。步骤5:创建R个特殊数据,每个数据称为ReducerTokenX,将每一个的属性设为ReducerTokenAttrX= { “副本数目 ”=1,“容错标志” =true},其中 X=I, 2,, R0步骤6:所有ReducerTokenX经过数据服务器调度,最终由R个工作节点接收并存储在本地,以此来标明此节点是Reducer,它被选中即将执行Reduce任务,启动相应的ReduceTask工作线程。步骤7:创建一个特殊数据CollectorToken,属性设为TokenCollector= { “副本数目” =1},它被存储在Master本地。步骤8:正式提交作业,指定该作业分析处理DataCollection DC={dl,d2,…,dn},调度所有数据块dl, d2,...,dn。然后,Map任务执行。步骤9:当 工作节点接收到数据块,将其放入数据队列,计算产生中间结果list (k, v)。然后,中间结果的“洗牌”。步骤10:工作节点对中间结果进行分区,获取Reducer的数目R,跟keyX相关的中间结果重组为数据irX,将其作为Reduce任务的输入数据,数据属性分别设为ReduceInputAttrX= { “副本数目 ”=r, “容错标志”=true, “依赖关系” =ReducerTokenX},数据调度器将它们调度至正确的Reducer来进行下一步处理,其中X=l,2,…,R。最后,Reduce任务的执行。步骤11:当Reducer接收到irX,将其放入数据队列,计算产生结果。步骤12:当队列中所有的数据都已处理,Reducer将结果组合成单个文件OutX。步骤13:设置最终结果OutX的属性OutAttr= {“依赖关系”=TokenCollector},最终结果经过调度被自动送回到Master。如图3所示,本发明实施例中,采用多线程的方法,每个工作节点可以同时执行Map任务和Reduce任务。每个工作节点采用多线程的方式,启动三个线程即Mapper、Reducer和ReducerPutter,同时维护三个数据队列Q1、Q2和Q3。其中,Ql存储Map输入数据,Q2存储Reduce输入数据(中间结果“洗牌”后),Q3存储待传输至别的节点执行Reduce任务的中间结果。如果某工作节点拥有ReducerTokenX,意味着该节点被选中执行Reduce任务去化简跟keyX相关的中间结果,该节点Map任务的输出结果中跟keyX相关的直接进入队列Q2,其他的进入队列Q3,等待调度至别的拥有ReducerToken的工作节点。如果某工作节点没有拥有任何ReducerToken,则Map任务的输出结果经分区后都进入队列Q3。本发明实施例采用Java语言编写,节点间的通信方式利用Java RMI (远程方法调用)来实现。为了验证本发明的可行性和有效性,本实施例在多台桌面PC的环境下进行了部署,并进行了性能比较测试。如图4所示,为实施例的Ping-Pong测试结果,该测试主要验证数据分块与数据传输性能。在该测试中,使用了局域网内2台服务器、I个Master (客户端)节点和I个Worker (工作)节点。Master节点执行ping程序,Worker节点执行pong程序。针对大小为2741MB的单个大文件,采用不同的数据分块大小,客户端上传数据至数据服务器(ping阶段),经过数据调度器调度,数据经过分块、创建、上传、下载、合并五个子过程,采用的数据传输协议是FTP,最终数据准确传输至工作节点(pong阶段)。测试结果表明,当数据分块的大小在32MB和80MB之间时,数据在两个节点间ping-pong传输的时间最短,这跟目前现有的MapReduce技术得出的结论类似,在实际使用时,数据分块的大小不能过小,也不能过大,一般选择64MB比较合适。如图5所示,在该实施例的广播测试中,采用的数据传输协议为BitTorrent和FTP,数据分块的大小设为48MB,客户端上传数据至服务器,经过数据调度器调度,所有数据分块传输至各工作节点,实现“广播”的效果。图5中给出了随着工作节点数的变化时广播的时间开销,采用FTP协议时,由于节点间竞争网络带宽,广播时间几乎成线性增长;采用BitTorrent协议时,广播时间增长较为缓慢,比采用FTP协议时性能更优。同时,在图5中还给出了实施例的Scatter/Gather测试结果,在这个测试中,数据分块的大小设为16MB,采用的数据传输协议为FTP。(I) Scatter测试:客户端上传数据至数据服务器,经过数据调度器调度,所有数据分块传输至工作节点,实现“Scatter”的效果;(2)Gather测试■ 另一客户端请求获取所有分块,经过数据调度器调度,最终获取所有的分块,各分块来自于不同的工作节点,实现“Gather”的效果。从图中可以看出,随着工作节点数增加,Scatter/Gather的时间并未显著增加,因为每个节点只传输部分数据块,因此网络中传输的数据总量基本保持不变。如图6所示,为实施例的可扩展性测试结果。该测试利用了位于局域网内的512台空闲的桌面PC,运行了经典的WordCount测试应用。该应用统计了在大型文本文档(在本测试中总大小为20 GB,数据分块的大小为100MB)中单词出现的频次,并按照字母顺序对单词进行排序。在该测试中,记录任务的完成时间,计算出WordCount处理的吞吐量(MB/s)的大小。测试结果证明,当所使用的工作节点数目增大的时候,吞吐量明显增大。本发明的实施例具有较好的加速比,随着节点数目增大的可扩展性能较好。如图7所示,为实施例的慢节点检测和多任务副本情况下的性能测试结果。在该测试中,使用的工作节点的总数目是200个,使用工具对部分工作节点进行CPU降速从而将其变成慢节点,并人为引入干扰,将任务挂起,使得任务成为慢任务。图中给出了当没有慢节点时,任务完成的参考时间约为25秒,随着工作节点中慢节点所占比例增大,若配置较大的副本数,明显可以降低任务的完成时间。在实施例中,将任务副本转化为数据副本,工作节点用周期性的“心跳信号”汇报任务的执行状态,通过获取工作节点的任务执行状态,从中检测并发现慢任务,删除副本并重调度,从而提高任务的完成时间,方法非常有效。下面结合图8 来说明本发明提出的Internet环境下MapReduce计算方法中节点容错的处理。在该案例分析中,总共利用5个工作节点,用户上传的待分析处理的大数据被分成5块,记为D (cl)、D (c2)、D (c3)、D (c4)、D (c5),每个节点均拥有MapperToken将执行Map任务,节点I和节点2还拥有ReducerToken将执行Reduce任务。人为引入三个工作节点失效或错误:节点4在Map输入数据下载阶段发生错误(F1)、节点3在Map任务执行阶段发生错误(F2)、节点I在Reduce任务执行阶段发生错误(F3)。针对错误Fl,数据D (c4)被重新调度至节点2,并在节点2启动Map任务M(c4)。针对错误F2,数据D (c3)被重新调度至节点5,并在节点5重新启动Map任务M(c3)。节点5在对数据D(c5)进行Map处理后,产生的中间结果经过分区得到U(i1:5)和U(i2,5),经过调度,分别被传输至节点I和节点
2。当节点I发生错误F3时,节点I的所有数据都丢失,均被重新调度至节点5,节点5获得ReducerToken,执行Reduce任务,同时D (cl)也被重新调度至节点5,重新启动Map任务M(Cl)。最终节点2和节点5完成所有Reduce任务,返回最终结果。
1.一种Internet环境下的MapReduce计算方法,其特征在于,利用Internet环境下志愿者桌面PC的空闲计算和存储资源来进行MapReduce计算,提供一种Internet环境下简单有效的容错MapReduce计算模型与方法,使得志愿计算系统能够支持MapReduce计算。
2.根据权利要求1所述的Internet环境下的MapReduce计算方法,其特征在于,Internet环境下的MapReduce计算系统架构包含三种不同类型的节点:第一是服务器,包含数据存储服务器、元数据服务器、数据调度器、MR任务调度器这四个不同的服务组件;第二是客户端(用户),也称之为Master节点;第三是众多的工作节点,也称之为Worker节点。
3.根据权利要求1所述的Internet环境下的MapReduce计算方法,其特征在于,它不依赖于传统的分布式文件系统,而依赖于自己的元数据管理系统和数据存储服务器。
4.根据权利要求2所述的Internet环境下的MapReduce计算方法,其特征在于,桌面PC以志愿者的形式加入系统成为工作节点,用户作为Master向服务器上传待处理的数据,并提交MapReduce任务,服务器自动将Map任务和Reduce任务调度至工作节点上执行,待所有任务完成,Reduce任务的最终结果自动返回给用户,无需人工干预。
5.根据权利要求4所述的Internet环境下的MapReduce计算方法,其特征在于,在元数据管理基础之上,利用数据驱动的方式,将任务分配与调度转化为数据调度,将Map任务和Reduce任务的容错转化为Map输入数据、中间结果和Reduce输入数据的容错,解决了Internet环境下工作节点动态易失效带来的影响。
6.根据权利要求4所述的Internet环境下的MapReduce计算方法,其特征在于,采用{副本数目,容错标志,生命周期,依赖关系,传输协议}五元组的数据属性值,来实现各种数据调度控制;利用数据容错标志,实现任务的容错;利用数据依赖关系,来实现合理控制Map任务得到的中间结果的数据流向,准确传输至执行Reduce任务的工作节点。
7.根据权利要求4所述的Internet环境下的MapReduce计算方法,其特征在于,采用了基于元数据的“拉模式”数据调度,突破Internet环境下网络地址转换和防火墙的限制;在“拉模式”下,工作节点主动发起通信过程,服务器被动响应;工作节点利用周期性的“心跳信号”向数据调度器汇报当前存储在本地的数据;作为“心跳信号的”响应,数据调度器与节点之间进行数据同步操作,数据调度器扫描系统中所有数据的属性,通知节点是否需要下载数据至本地或者删除已存在于本地的数据,将数据同步与数据调度相耦合。
本发明公开了一种Internet环境下MapReduce计算方法。该方法利用Internet桌面PC的空闲计算和存储资源来进行MapReduce计算。桌面PC以志愿者的形式加入系统成为工作节点,用户作为Master向服务器上传待处理的数据,服务器将Map和Reduce任务调度至工作节点上执行,待所有任务完成,最终结果自动返回给用户。该方法在元数据管理基础之上,采用数据驱动的方式,将任务调度转化为数据调度,解决了节点动态易失效带来的影响,提供了一种Internet环境下简单有效的容错MapReduce计算模型与方法。采用本发明,可在校园、企业、政府内利用现有桌面PC构建以私有为目的的MapReduce计算平台来进行海量数据分析,或用于改进志愿计算系统来支持MapReduce计算模型,降低志愿计算系统应用开发的难度。
文档编号G06F9/50GKSQ
公开日日 申请日期日 优先权日日
发明者贺海武, 唐兵 申请人:贺海武, 唐兵

我要回帖

更多关于 大王卡网速慢怎么解决 的文章

 

随机推荐