当前位置: 首页 > 专利查询>贺海武专利>正文

一种Internet环境下MapReduce计算方法技术

技术编号:8735067 阅读:258 留言:0更新日期:2013-05-26 11:43
本发明专利技术公开了一种Internet环境下MapReduce计算方法。该方法利用Internet桌面PC的空闲计算和存储资源来进行MapReduce计算。桌面PC以志愿者的形式加入系统成为工作节点,用户作为Master向服务器上传待处理的数据,服务器将Map和Reduce任务调度至工作节点上执行,待所有任务完成,最终结果自动返回给用户。该方法在元数据管理基础之上,采用数据驱动的方式,将任务调度转化为数据调度,解决了节点动态易失效带来的影响,提供了一种Internet环境下简单有效的容错MapReduce计算模型与方法。采用本发明专利技术,可在校园、企业、政府内利用现有桌面PC构建以私有为目的的MapReduce计算平台来进行海量数据分析,或用于改进志愿计算系统来支持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任务和Red本文档来自技高网
...

【技术保护点】
一种Internet环境下的MapReduce计算方法,其特征在于,利用Internet环境下志愿者桌面PC的空闲计算和存储资源来进行MapReduce计算,提供一种Internet环境下简单有效的容错MapReduce计算模型与方法,使得志愿计算系统能够支持MapReduce计算。

【技术特征摘要】

【专利技术属性】
技术研发人员:贺海武唐兵
申请(专利权)人:贺海武唐兵
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1