CN105138679B - 一种基于分布式缓存的数据处理***及处理方法 - Google Patents

一种基于分布式缓存的数据处理***及处理方法 Download PDF

Info

Publication number
CN105138679B
CN105138679B CN201510581178.4A CN201510581178A CN105138679B CN 105138679 B CN105138679 B CN 105138679B CN 201510581178 A CN201510581178 A CN 201510581178A CN 105138679 B CN105138679 B CN 105138679B
Authority
CN
China
Prior art keywords
data
tasks
map
map tasks
reduce
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510581178.4A
Other languages
English (en)
Other versions
CN105138679A (zh
Inventor
蔡晓东
王丽娟
陈超村
赵勤鲁
吕璐
甘凯今
王迪
杨超
宋宗涛
刘馨婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201510581178.4A priority Critical patent/CN105138679B/zh
Publication of CN105138679A publication Critical patent/CN105138679A/zh
Application granted granted Critical
Publication of CN105138679B publication Critical patent/CN105138679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及一种基于分布式缓存的数据处理***,包括用于将提交来的用户作业分解成多个map任务和多个reduce任务的mapreduce数据处理模块、用于处理map任务的map任务内存处理模块和用于通过reduce任务处理map任务的reduce分布式缓存模块;本发明还涉及一种基于分布式缓存的数据处理方法;本发明的有益效果是:主要服务于map任务,优化map任务处理数据,保证map能在最短的时间内找到目标数据,且以最快的速度传输中间处理结果;能够减少数据传输量,完全实现数据本地化处理,提高数据命中率,从而提升数据处理的执行效率。

Description

一种基于分布式缓存的数据处理***及处理方法
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于分布式缓存的数据处理***及处理方法。
背景技术
Apached hadoop(一般简称hadoop)是一个开源的分布式数据处理平台,它的核心主要包括两个部分,分布式文件***(HDFS)和mapreduce计算模型。
HDFS在大规模数据的存储方面表现出巨大的优势,然而,它在处理实时的数据读取方面存在很大的不足。由于在执行mapreduce任务的过程中需要进行大量的数据读取,会对网络传输和磁盘I/O(Input/Output)带宽造成巨大的压力,所以要在HDFS的基础上设置缓存***,减少数据传数量,以提高mapreduce的执行效率。
mapreduce数据计算过程可以分为两个阶段:map和reduce,分别对应于两个处理函数mapper和reducer。在map阶段,原始数据被输入mapper进行处理和转换为<key,value>对,获得的中间处理结果将作为reducer端的数据输入,最终得到处理结果。在整个mapreduce的数据处理过程中,从分布式文件***HDFS中读取原始数据所花费的时间最长,因此,要想提高mapreduce的执行效率,需要从原始数据的读取入手。通过建立相应的缓存机制,提高数据命中率,使map阶段原始数据的读取时间缩短。
在现有的分布式缓存***架构中,各业务***与其对应的缓存服务器,通过该业务***的配置数据与缓存服务器进行直接的网络连接,这将导致当缓存服务器产生故障,将其切换到另外一套缓存服务器时,业务***需要写该相应的配置参数,通过重新启动后再与缓存服务器进行连接。就目前的分布式缓存***架构而言,在业务***与缓存服务器之间的对应关系管理将分散开来,没有进行集中统一的管理。不仅如此,在缓存服务器进行切换时,也给业务***的配置参数的修改造成较大的难度,而且人为的操作也可能造成配置参数的修改错误。
memcache是一个高性能的分布式的内存对象缓存***,采用key-value形式的存储结构。虽然是分布式的缓存***,但是它的服务端不存在多个副本,而分布式是在客户端实现的,目前已有成熟的客户端配置分布式的API(应用程序编程接口)。同时也提供了增删查改的操作API,使用起来比较方便。通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据。Memcache简单的说就是将数据调用到内存中,然后再从内存中读取出来,从而在很大的程度上提高数据的读取速度。但memcache也存在缺点,文件备份领域的分布式存储***很少采用memcache做分布式缓存的。
这些机制均面向传统数据中心平台架构,然而在map/reduce平台计算资源与存储资源的紧耦合部署和数据本地化处理的特征,使得在基于数据快的数据访问特征统计结果受到计算资源分配策略及实时负载的干扰,难以完整真实的反映数据访问特征。
针对mapreduce任务执行过程中需要读取大量数据,中间处理结果的存储和传输,对网络传输和I/O带宽造成巨大的压力,现有技术中没有很好的解决方法。
发明内容
本发明所要解决的技术问题是提供一种基于分布式缓存的数据处理***及处理方法,优化map任务处理数据,保证map能在最短的时间内找到目标数据,且以最快的速度传输中间处理结果。
本发明解决上述技术问题的技术方案如下:一种基于分布式缓存的数据处理***,包括mapreduce数据处理模块、map任务内存处理模块和reduce分布式缓存模块,
所述mapreduce数据处理模块,用于将提交来的用户作业进行任务分解,分解成多个map任务和多个reduce任务,并将map任务分配至相应的datanode本地节点中;
所述map任务内存处理模块,用于判断map任务中的目标数据是否存在于datanode本地节点的缓存序列中,如果存在则从缓存序列中读取目标数据,如果不存在则将所述目标数据缓存到datanode本地节点所在的缓存序列中;
所述reduce分布式缓存模块,用于检查缓存服务器中有无缓存空间,如果有则将map任务的中间处理数据处理后存放在缓存服务器中,再根据reduce任务获取所有map任务的信息,并将存放在缓存服务器中的中间处理数据拉取到reduce任务的数据节点中;如果缓存服务器中无缓存空间,则将map任务的中间处理数据输出到本地磁盘中。
本发明的有益效果是:主要服务于map任务,优化map任务处理数据,保证map能在最短的时间内找到目标数据,且以最快的速度传输中间处理结果;能够减少数据传输量,完全实现数据本地化处理,提高数据命中率,从而提升数据处理的执行效率。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述mapreduce数据处理模块包括作业监视器调用单元和任务监视器调用单元,
所述作业监视器调用单元,用于调用作业监视器从所述用户作业中获得所要处理的数据范围和位置信息,并将用户作业分解为多个map任务和多个reduce任务,并根据每个map任务中目标数据,访问hadoop集群的namenode主节点中的元数据,从元数据中获取存放目标数据的datanode本地节点的位置;还用于根据任务监视器发送来的信号,将map任务分配到相应的datanode本地节点的位置中;
所述任务监视器调用单元,用于定时检查任务监视器是否有空闲的情况,如果有空闲则发送信号至作业监视器中,否则不发送。
采用上述进一步方案的有益效果是:map任务可以直接从datanode本地节点的磁盘中读取待处理的数据,从而减少数据在网络中的传输消耗。
进一步,所述map任务内存处理模块包括map任务处理单元201和缓存检测单元,
所述map任务处理单元,用于在datanode本地节点所在的缓存序列中读取数据分片,根据map任务中目标数据进行判断,如果数据分片中存在目标数据,则从缓存序列中读取目标数据,如果数据分片中不存在目标数据,则将目标数据缓存到缓存序列中;
所述缓存检测单元,用于实时检测datanode本地节点所在的缓存序列是否达到预设的阈值,如果达到,则根据最近最久未使用置换算法将缓存序列中已缓存数据与待缓存数据进行替换。
进一步,所述reduce分布式缓存模块包括中间数据处理单元和reduce任务处理单元,
所述中间数据处理单元,用于检查缓存服务器中有无缓存空间,如果有则将map任务的中间处理数据以<key,value>键值对的形式存放在缓存服务器中,其中key为mapID+reduceID,value为map任务的中间处理数据;如果缓存服务器中无缓存空间,则将map任务的中间处理数据输出到本地磁盘中;
所述reduce任务处理单元,用于对reduce任务初始化,根据初始化后的reduce任务调用任务监视器,从任务监视器上获取所有map任务的信息,并检查缓存服务器是否存在中间处理数据,如果存在则将中间处理数据拉取到reduce任务的数据节点中。
采用上述进一步方案的有益效果是:可以减少reduce任务从本地磁盘中读取中间结果待处理数据的时间。
进一步,所述缓存服务器中有无缓存空间利用Size≥m*s*(r-ra)进行检查,其中m表示已完成map任务个数,s表示map任务的中间处理数据输出的结果的平均大小,r表示全部reduce任务个数,ra表示已分配的reduce任务个数。
本发明解决上述技术问题的另一技术方案如下:一种基于分布式缓存的数据处理方法,包括如下步骤:
步骤S1:将提交来的用户作业进行任务分解,分解成多个map任务和多个reduce任务,并将map任务分配至相应的datanode本地节点中;
步骤S2:判断map任务中的目标数据是否存在于datanode本地节点的缓存序列中,如果存在,则执行步骤S3,如果不存在,则执行步骤S4;
步骤S3:从缓存序列中读取目标数据;
步骤S4:将所述目标数据缓存到datanode本地节点所在的缓存序列中;
步骤S5:检查缓存服务器中有无缓存空间,如果有缓存空间,则执行步骤S6,如果无缓存空间,则执行步骤S7;
步骤S6:将map任务的中间处理数据处理后存放在缓存服务器中,再根据reduce任务获取所有map任务的信息,并将存放在缓存服务器中的中间处理数据拉取到reduce任务的数据节点中;所述<key,value>键值对中key为mapID+reduceID,value为map任务的中间处理数据;
步骤S7:将map任务的中间处理数据输出到本地磁盘中。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤S6中还包括实时检测datanode本地节点所在的缓存序列是否达到预设的阈值,如果达到,则根据最近最久未使用置换算法将缓存序列中已缓存数据与待缓存数据进行替换的步骤。
进一步,实现所述步骤S1的具体步骤为:
步骤S101:调用作业监视器从所述用户作业中获得所要处理的数据范围和位置信息,并将用户作业分解为多个map任务和多个reduce任务,并根据每个map任务中目标数据,访问hadoop集群的namenode主节点中的元数据,从元数据中获取存放目标数据的datanode本地节点的位置;
步骤S102:定时检查任务监视器是否有空闲的情况,如果有空闲则发送信号至作业监视器中,否则不发送;
步骤S103:根据任务监视器发送来的信号,将map任务分配到相应的datanode本地节点的位置中。
采用上述进一步方案的有益效果是:map任务可以直接从datanode本地节点的磁盘中读取待处理的数据,从而减少数据在网络中的传输消耗。
进一步,实现所述步骤S2的具体方法为:在datanode本地节点所在的缓存序列中读取数据分片,根据map任务中目标数据进行判断,如果数据分片中有目标数据,则执行步骤S3,如果数据分片中没有目标数据,则执行步骤S4。
进一步,将map任务的中间处理数据的处理为:以<key,value>键值对的形式存放在缓存服务器中,其中key为mapID+reduceID,value为map任务的中间处理数据。
进一步,所述缓存服务器中有无缓存空间利用Size≥m*s*(r-ra)进行检查,其中m表示已完成map任务个数,s表示map任务的中间处理数据输出的结果的平均大小,r表示全部reduce任务个数,ra表示已分配的reduce任务个数。
附图说明
图1为本发明基于分布式缓存的数据处理***的模块框图;
图2为本发明基于分布式缓存的数据处理方法的方法流程图。
附图中,各标记所代表的部件名称如下:
1、mapreduce数据处理模块,2、map任务内存处理模块,3、reduce分布式缓存模块,101、作业监视器调用单元,102、任务监视器调用单元,201、map任务处理单元,202、缓存检测单元,301、中间数据处理单元,302、reduce任务处理单元。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
在HDFS中一般有三个重要角色:namenode,datanode,和client。Namenode可以看作是分布式文件***的管理者,主要负责管理文件***的命名空间、集群配置信息和存储数据块的复制等。Namenode会将文件***的元数据(Meta-data)存储在内存中,这些信息主要包括了文件信息、每一个文件所对应的数据块信息和数据块在namenode中的位置信息等。Datanode是文件存储的基本单元,它将数据块存储在本地文件***中,保存了数据块的元数据信息,同时以心跳(heartbeat)的形式周期性的将所以存在的数据块的信息发送给namenode。Client就是需要获取分布式文件***中文件的应用程序。
mapreduce计算模式是一种标准的函数式编程模式。用户通过编程实例实现对文件的操作。每一个用户程序都可以看做是一个作业,而作业是由jobtracker分解成若干个map任务和reduce任务。Map任务从HDFS中读取待处理的数据块,raduce任务处理数据后将结果写入HDFS,所以本发明所提出的一种分布式缓存方法主要服务于map任务,主要优化map任务处理数据,保证map能在最短的时间内找到目标数据,且以最快的速度传输中间处理结果。
如图1所示,一种基于分布式缓存的数据处理***,包括mapreduce数据处理模块1、map任务内存处理模块2和reduce分布式缓存模块3,
所述mapreduce数据处理模块1,用于将提交来的用户作业进行任务分解,分解成多个map任务和多个reduce任务,并将map任务分配至相应的datanode本地节点中;
所述map任务内存处理模块2,用于判断map任务中的目标数据是否存在于datanode本地节点的缓存序列中,如果存在则从缓存序列中读取目标数据,如果不存在则将所述目标数据缓存到datanode本地节点所在的缓存序列中;
所述reduce分布式缓存模块3,用于检查缓存服务器中有无缓存空间,如果有则将map任务的中间处理数据处理后存放在缓存服务器中,再根据reduce任务获取所有map任务的信息,并将存放在缓存服务器中的中间处理数据拉取到reduce任务的数据节点中;如果缓存服务器中无缓存空间,则将map任务的中间处理数据输出到本地磁盘中。
所述mapreduce数据处理模块1包括作业监视器调用单元101和任务监视器调用单元102,
所述作业监视器调用单元101,用于调用作业监视器从所述用户作业中获得所要处理的数据范围和位置信息,并将用户作业分解为多个map任务和多个reduce任务,并根据每个map任务中目标数据,访问hadoop集群的namenode主节点中的元数据,从元数据中获取存放目标数据的datanode本地节点的位置;还用于根据任务监视器发送来的信号,将map任务分配到相应的datanode本地节点的位置中;
所述任务监视器调用单元102,用于定时检查任务监视器是否有空闲的情况,如果有空闲则发送信号至作业监视器中,否则不发送。
所述map任务内存处理模块2包括map任务处理单元201和缓存检测单元202,
所述map任务处理单元201,用于在datanode本地节点所在的缓存序列中读取数据分片,根据map任务中目标数据进行判断,如果数据分片中存在目标数据,则从缓存序列中读取目标数据,如果数据分片中不存在目标数据,则将目标数据缓存到缓存序列中;
所述缓存检测单元202,用于实时检测datanode本地节点所在的缓存序列是否达到预设的阈值,如果达到,则根据最近最久未使用置换算法将缓存序列中已缓存数据与待缓存数据进行替换。
所述reduce分布式缓存模块3包括中间数据处理单元301和reduce任务处理单元302,
所述中间数据处理单元301,用于检查缓存服务器中有无缓存空间,如果有则将map任务的中间处理数据以<key,value>键值对的形式存放在缓存服务器中;如果缓存服务器中无缓存空间,则将map任务的中间处理数据输出到本地磁盘中,其中key为mapID+reduceID,value为map任务的中间处理数据;
所述reduce任务处理单元302,用于对reduce任务初始化,根据初始化后的reduce任务调用任务监视器,从任务监视器上获取所有map任务的信息,并检查缓存服务器是否存在中间处理数据,如果存在则将中间处理数据拉取到reduce任务的数据节点中。
所述缓存服务器中有无缓存空间利用Size≥m*s*(r-ra)进行检查,其中m表示已完成map任务个数,s表示map任务的中间处理数据输出的结果的平均大小,r表示全部reduce任务个数,ra表示已分配的reduce任务个数。
如图2所示,一种基于分布式缓存的数据处理方法,包括如下步骤:
由于HDFS是主从结构即master/slave,因此可以将namenode和jobtracker部署在主master服务器上,datanode和tasktracker部署在从slave服务器上。若map任务所要处理的目标数据保存在本地服务器即datanode本地节点上,那么map任务可以直接从datanode本地节点的磁盘中读取待处理的数据,从而减少数据在网络中的传输消耗。当jobtracker响应用户段提交的作业请求,进行任务调度时,***默认优先将map任务分配给包含该任务所要处理目标数据快的对应datanode节点上。为了更大限度的实现数据本地化这一目的,一般情况下,分片大小split与数据块大小block相等,因此在inputsplit元数据信息中,host列表上只包含一个节点,就可完全实现mapreduce数据本地化处理,因此,
步骤S1:将提交来的用户作业进行任务分解,分解成多个map任务和多个reduce任务,并将map任务分配至相应的datanode本地节点中;
由于磁盘的读取速率远远跟不上CPU的处理速率,所以设置内存缓存序列来平衡两者之间的差距。将存储在磁盘内的部分数据预先读取到内存缓存序列中,当CPU接受读取数据的指令时,直接从内存缓存序列中获得相应的待处理数据。此方法可以减少map任务从本地磁盘中读取待处理数据的时间,因此,
步骤S2:判断map任务中的目标数据是否存在于datanode本地节点的缓存序列中,如果存在,则执行步骤S3,如果不存在,则执行步骤S4;
步骤S3:从缓存序列中读取目标数据;
步骤S4:将所述目标数据缓存到datanode本地节点所在的缓存序列中;
由于mapreduce处理的中间结果数据两次写入磁盘,造成频繁的磁盘IO访问,严重影响mapreduce的处理效率。此方法可以减少reduce任务从本地磁盘中读取中间结果待处理数据的时间,因此,
步骤S5:检查缓存服务器中有无缓存空间,如果有缓存空间,则执行步骤S6,如果无缓存空间,则执行步骤S7;
步骤S6:将map任务的中间处理数据处理后存放在缓存服务器中,再根据reduce任务获取所有map任务的信息,并将存放在缓存服务器中的中间处理数据通过基于TCP的http协议或者UDT协议拉取到reduce任务的数据节点中;
步骤S7:将map任务的中间处理数据输出到本地磁盘中。
还包括当实时检测datanode本地节点所在的缓存序列是否达到预设的阈值,如果达到,则根据最近最久未使用置换算法将缓存序列中已缓存数据与待缓存数据进行替换的步骤。具体实施时,设定缓存序列的阈值为缓存序列大小的80%。
步骤S6中将map任务的中间处理数据的处理为:以<key,value>键值对的形式存放在缓存服务器中,其中key为mapID+reduceID,value为map任务的中间处理数据。
实现所述步骤S1的具体步骤为:
步骤S101:调用作业监视器从所述用户作业中获得所要处理的数据范围和位置信息,并将用户作业分解为多个map任务和多个reduce任务,并根据每个map任务中目标数据,访问hadoop集群的namenode主节点中的元数据,从元数据中获取存放目标数据的datanode本地节点的位置;每个map任务处理一个split数据,大小为一个block大小;
步骤S102:定时检查(按心跳heartbeat的形式周期性的检查)任务监视器是否有空闲的情况,如果有空闲则发送信号至作业监视器中,否则不发送;
步骤S103:根据任务监视器发送来的信号,将map任务分配到相应的datanode本地节点的位置中。
实现所述步骤S2的具体方法为:在datanode本地节点所在的缓存序列中读取数据分片,根据map任务中目标数据进行判断,如果数据分片中有目标数据,则执行步骤S3,如果数据分片中没有目标数据,则执行步骤S4。
所述缓存服务器中有无缓存空间利用Size≥m*s*(r-ra)进行检查,其中m表示已完成map任务个数,s表示map任务的中间处理数据输出的结果的平均大小,r表示全部reduce任务个数,ra表示已分配的reduce任务个数。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于分布式缓存的数据处理***,其特征在于,包括mapreduce数据处理模块(1)、map任务内存处理模块(2)和reduce分布式缓存模块(3),
所述mapreduce数据处理模块(1),用于将提交来的用户作业进行任务分解,分解成多个map任务和多个reduce任务,并将map任务分配至相应的datanode本地节点中;
所述map任务内存处理模块(2),用于判断map任务中的目标数据是否存在于datanode本地节点的缓存序列中,如果存在则从缓存序列中读取目标数据,如果不存在则将所述目标数据缓存到datanode本地节点所在的缓存序列中;
所述reduce分布式缓存模块(3),用于检查缓存服务器中有无缓存空间,如果有则将map任务的中间处理数据处理后存放在缓存服务器中,再根据reduce任务获取所有map任务的信息,并将存放在缓存服务器中的中间处理数据拉取到reduce任务的数据节点中;如果缓存服务器中无缓存空间,则将map任务的中间处理数据输出到本地磁盘中;
所述缓存服务器中有无缓存空间利用Size≥m*s*(r-ra)进行检查,其中m表示已完成map任务个数,s表示map任务的中间处理数据输出的结果的平均大小,r表示全部reduce任务个数,ra表示已分配的reduce任务个数。
2.根据权利要求1所述的基于分布式缓存的数据处理***,其特征在于,所述mapreduce数据处理模块(1)包括作业监视器调用单元(101)和任务监视器调用单元(102),
所述作业监视器调用单元(101),用于调用作业监视器从所述用户作业中获得所要处理的数据范围和位置信息,并将用户作业分解为多个map任务和多个reduce任务,并根据每个map任务中目标数据,访问hadoop集群的namenode主节点中的元数据,从元数据中获取存放目标数据的datanode本地节点的位置;还用于根据任务监视器发送来的信号,将map任务分配到相应的datanode本地节点的位置中;
所述任务监视器调用单元(102),用于定时检查任务监视器是否有空闲的情况,如果有空闲则发送信号至作业监视器中,否则不发送。
3.根据权利要求1所述的基于分布式缓存的数据处理***,其特征在于,所述map任务内存处理模块(2)包括map任务处理单元(201)和缓存检测单元(202),
所述map任务处理单元(201),用于在datanode本地节点所在的缓存序列中读取数据分片,根据map任务中目标数据进行判断,如果数据分片中存在目标数据,则从缓存序列中读取目标数据,如果数据分片中不存在目标数据,则将目标数据缓存到缓存序列中;
所述缓存检测单元(202),用于实时检测datanode本地节点所在的缓存序列是否达到预设的阈值,如果达到,则根据最近最久未使用置换算法将缓存序列中已缓存数据与待缓存数据进行替换。
4.根据权利要求1所述的基于分布式缓存的数据处理***,其特征在于,所述reduce分布式缓存模块(3)包括中间数据处理单元(301)和reduce任务处理单元(302),
所述中间数据处理单元(301),用于检查缓存服务器中有无缓存空间,如果有则将map任务的中间处理数据以<key,value>键值对的形式存放在缓存服务器中,其中key为mapID+reduceID,value为map任务的中间处理数据;如果缓存服务器中无缓存空间,则将map任务的中间处理数据输出到本地磁盘中;
所述reduce任务处理单元(302),用于对reduce任务初始化,根据初始化后的reduce任务调用任务监视器,从任务监视器上获取所有map任务的信息,并检查缓存服务器是否存在中间处理数据,如果存在则将中间处理数据拉取到reduce任务的数据节点中。
5.一种基于分布式缓存的数据处理方法,其特征在于,包括如下步骤:
步骤S1:将提交来的用户作业进行任务分解,分解成多个map任务和多个reduce任务,并将map任务分配至相应的datanode本地节点中;
步骤S2:判断map任务中的目标数据是否存在于datanode本地节点的缓存序列中,如果存在,则执行步骤S3,如果不存在,则执行步骤S4;
步骤S3:从缓存序列中读取目标数据;
步骤S4:将所述目标数据缓存到datanode本地节点所在的缓存序列中;
步骤S5:检查缓存服务器中有无缓存空间,如果有缓存空间,则执行步骤S6,如果无缓存空间,则执行步骤S7;所述缓存服务器中有无缓存空间利用Size≥m*s*(r-ra)进行检查,其中m表示已完成map任务个数,s表示map任务的中间处理数据输出的结果的平均大小,r表示全部reduce任务个数,ra表示已分配的reduce任务个数;
步骤S6:将map任务的中间处理数据处理后存放在缓存服务器中,再根据reduce任务获取所有map任务的信息,并将存放在缓存服务器中的中间处理数据拉取到reduce任务的数据节点中;
步骤S7:将map任务的中间处理数据输出到本地磁盘中。
6.根据权利要求5所述的基于分布式缓存的数据处理方法,其特征在于,还包括实时检测datanode本地节点所在的缓存序列是否达到预设的阈值,如果达到,则根据最近最久未使用置换算法将缓存序列中已缓存数据与待缓存数据进行替换的步骤。
7.根据权利要求5所述的基于分布式缓存的数据处理方法,其特征在于,实现所述步骤S1的具体步骤为:
步骤S101:调用作业监视器从所述用户作业中获得所要处理的数据范围和位置信息,并将用户作业分解为多个map任务和多个reduce任务,并根据每个map任务中目标数据,访问hadoop集群的namenode主节点中的元数据,从元数据中获取存放目标数据的datanode本地节点的位置;
步骤S102:定时检查任务监视器是否有空闲的情况,如果有空闲则发送信号至作业监视器中,否则不发送;
步骤S103:根据任务监视器发送来的信号,将map任务分配到相应的datanode本地节点的位置中。
8.根据权利要求5所述的基于分布式缓存的数据处理方法,其特征在于,实现所述步骤S2的具体方法为:在datanode本地节点所在的缓存序列中读取数据分片,根据map任务中目标数据进行判断,如果数据分片中有目标数据,则执行步骤S3,如果数据分片中没有目标数据,则执行步骤S4。
9.根据权利要求5所述的基于分布式缓存的数据处理方法,其特征在于,所述步骤S6中将map任务的中间处理数据的处理为:以<key,value>键值对的形式存放在缓存服务器中,其中key为mapID+reduceID,value为map任务的中间处理数据。
CN201510581178.4A 2015-09-14 2015-09-14 一种基于分布式缓存的数据处理***及处理方法 Active CN105138679B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510581178.4A CN105138679B (zh) 2015-09-14 2015-09-14 一种基于分布式缓存的数据处理***及处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510581178.4A CN105138679B (zh) 2015-09-14 2015-09-14 一种基于分布式缓存的数据处理***及处理方法

Publications (2)

Publication Number Publication Date
CN105138679A CN105138679A (zh) 2015-12-09
CN105138679B true CN105138679B (zh) 2018-11-13

Family

ID=54724026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510581178.4A Active CN105138679B (zh) 2015-09-14 2015-09-14 一种基于分布式缓存的数据处理***及处理方法

Country Status (1)

Country Link
CN (1) CN105138679B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740068A (zh) * 2016-01-27 2016-07-06 中国科学院计算技术研究所 面向大数据平台基于内存数据局部性的调度方法及***
CN107087010B (zh) * 2016-02-14 2020-10-27 阿里巴巴集团控股有限公司 中间数据传输方法及***、分布式***
CN105808160B (zh) * 2016-02-24 2019-02-05 鄞州浙江清华长三角研究院创新中心 基于SSD的mpCache混合存储***
CN106503058B (zh) * 2016-09-27 2019-01-18 华为技术有限公司 一种数据加载方法、终端和计算集群
CN107844568B (zh) * 2017-11-03 2021-05-28 广东电网有限责任公司电力调度控制中心 一种处理数据源更新的MapReduce执行过程优化方法
CN110659111A (zh) * 2018-06-29 2020-01-07 北京国双科技有限公司 数据处理方法及***
US20210209069A1 (en) * 2018-08-17 2021-07-08 Siemens Aktiengesellschaft Method, device, and system for processing distributed data, and machine readable medium
CN110222105B (zh) * 2019-05-14 2021-06-29 联动优势科技有限公司 数据汇总处理方法及装置
CN114550833B (zh) * 2022-02-15 2022-10-28 郑州大学 一种基于大数据的基因分析方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770402A (zh) * 2008-12-29 2010-07-07 ***通信集团公司 MapReduce***中的Map任务调度方法、设备及***
CN102387173A (zh) * 2010-09-01 2012-03-21 ***通信集团公司 一种MapReduce***及其调度任务的方法和装置
CN103023805A (zh) * 2012-11-22 2013-04-03 北京航空航天大学 一种MapReduce***
CN103327128A (zh) * 2013-07-23 2013-09-25 百度在线网络技术(北京)有限公司 用于MapReduce的中间数据传输方法及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770402A (zh) * 2008-12-29 2010-07-07 ***通信集团公司 MapReduce***中的Map任务调度方法、设备及***
CN102387173A (zh) * 2010-09-01 2012-03-21 ***通信集团公司 一种MapReduce***及其调度任务的方法和装置
CN103023805A (zh) * 2012-11-22 2013-04-03 北京航空航天大学 一种MapReduce***
CN103327128A (zh) * 2013-07-23 2013-09-25 百度在线网络技术(北京)有限公司 用于MapReduce的中间数据传输方法及***

Also Published As

Publication number Publication date
CN105138679A (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
CN105138679B (zh) 一种基于分布式缓存的数据处理***及处理方法
US20170337224A1 (en) Targeted Processing of Executable Requests Within A Hierarchically Indexed Distributed Database
CN105956166B (zh) 数据库读写方法和读写装置
CN105450618B (zh) 一种api服务器处理大数据的运算方法及其***
CN108885582A (zh) 存储器池结构的多租户存储器服务
CN106250226B (zh) 基于一致性哈希算法的任务调度方法及***
CN104050042B (zh) Etl作业的资源分配方法及装置
CN103595780B (zh) 基于消重的云计算资源调度方法
CN103176849B (zh) 一种基于资源分类的虚拟机集群的部署方法
CN110308984B (zh) 一种用于处理地理分布式数据的跨集群计算***
CN103607424B (zh) 一种服务器连接方法及服务器***
CN106484713A (zh) 一种基于面向服务的分布式请求处理***
CN105518631B (zh) 内存管理方法、装置和***、以及片上网络
US10102230B1 (en) Rate-limiting secondary index creation for an online table
CN104270412A (zh) 一种基于Hadoop分布式文件***的三级缓存方法
CN106354729A (zh) 一种图数据处理方法、装置和***
Wang et al. Hybrid pulling/pushing for i/o-efficient distributed and iterative graph computing
CN102214236A (zh) 一种海量数据处理方法和***
CN109933585A (zh) 数据查询方法和数据查询***
US10579419B2 (en) Data analysis in storage system
CN111459650B (zh) 管理专用处理资源的存储器的方法、设备和介质
US20220413906A1 (en) Method, device, and program product for managing multiple computing tasks based on batch
CN117076133B (zh) 云游戏平台异构资源分配方法、计算机装置及存储介质
Wang et al. An Improved Memory Cache Management Study Based on Spark.
Gao et al. A cache management strategy for transparent computing storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant