CN105138679A - 一种基于分布式缓存的数据处理系统及处理方法 - Google Patents
一种基于分布式缓存的数据处理系统及处理方法 Download PDFInfo
- Publication number
- CN105138679A CN105138679A CN201510581178.4A CN201510581178A CN105138679A CN 105138679 A CN105138679 A CN 105138679A CN 201510581178 A CN201510581178 A CN 201510581178A CN 105138679 A CN105138679 A CN 105138679A
- Authority
- CN
- China
- Prior art keywords
- data
- task
- map
- map task
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed 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
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于分布式缓存的数据处理系统及处理方法。
背景技术
Apachedhadoop(一般简称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 (10)
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任务的中间处理数据输出到本地磁盘中。
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;
步骤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任务的中间处理数据。
10.根据权利要求5至9任一项所述的基于分布式缓存的数据处理方法,其特征在于,所述缓存服务器中有无缓存空间利用Size≥m*s*(r-ra)进行检查,其中m表示已完成map任务个数,s表示map任务的中间处理数据输出的结果的平均大小,r表示全部reduce任务个数,ra表示已分配的reduce任务个数。
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 true CN105138679A (zh) | 2015-12-09 |
CN105138679B 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) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740068A (zh) * | 2016-01-27 | 2016-07-06 | 中国科学院计算技术研究所 | 面向大数据平台基于内存数据局部性的调度方法及系统 |
CN105808160A (zh) * | 2016-02-24 | 2016-07-27 | 鄞州浙江清华长三角研究院创新中心 | 基于SSD的mpCache混合存储系统 |
CN106503058A (zh) * | 2016-09-27 | 2017-03-15 | 华为技术有限公司 | 一种数据加载方法、终端和计算集群 |
WO2017136999A1 (zh) * | 2016-02-14 | 2017-08-17 | 阿里巴巴集团控股有限公司 | 中间数据传输方法及系统、分布式系统 |
CN107844568A (zh) * | 2017-11-03 | 2018-03-27 | 广东电网有限责任公司电力调度控制中心 | 一种处理数据源更新的MapReduce执行过程优化方法 |
CN110222105A (zh) * | 2019-05-14 | 2019-09-10 | 联动优势科技有限公司 | 数据汇总处理方法及装置 |
CN110659111A (zh) * | 2018-06-29 | 2020-01-07 | 北京国双科技有限公司 | 数据处理方法及系统 |
CN112335217A (zh) * | 2018-08-17 | 2021-02-05 | 西门子股份公司 | 分布式数据处理方法、装置及系统和机器可读介质 |
CN114550833A (zh) * | 2022-02-15 | 2022-05-27 | 郑州大学 | 一种基于大数据的基因分析方法及系统 |
Citations (4)
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的中间数据传输方法及系统 |
-
2015
- 2015-09-14 CN CN201510581178.4A patent/CN105138679B/zh active Active
Patent Citations (4)
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的中间数据传输方法及系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740068A (zh) * | 2016-01-27 | 2016-07-06 | 中国科学院计算技术研究所 | 面向大数据平台基于内存数据局部性的调度方法及系统 |
WO2017136999A1 (zh) * | 2016-02-14 | 2017-08-17 | 阿里巴巴集团控股有限公司 | 中间数据传输方法及系统、分布式系统 |
CN105808160A (zh) * | 2016-02-24 | 2016-07-27 | 鄞州浙江清华长三角研究院创新中心 | 基于SSD的mpCache混合存储系统 |
CN105808160B (zh) * | 2016-02-24 | 2019-02-05 | 鄞州浙江清华长三角研究院创新中心 | 基于SSD的mpCache混合存储系统 |
CN106503058B (zh) * | 2016-09-27 | 2019-01-18 | 华为技术有限公司 | 一种数据加载方法、终端和计算集群 |
WO2018058998A1 (zh) * | 2016-09-27 | 2018-04-05 | 华为技术有限公司 | 一种数据加载方法、终端和计算集群 |
CN106503058A (zh) * | 2016-09-27 | 2017-03-15 | 华为技术有限公司 | 一种数据加载方法、终端和计算集群 |
CN107844568A (zh) * | 2017-11-03 | 2018-03-27 | 广东电网有限责任公司电力调度控制中心 | 一种处理数据源更新的MapReduce执行过程优化方法 |
CN110659111A (zh) * | 2018-06-29 | 2020-01-07 | 北京国双科技有限公司 | 数据处理方法及系统 |
CN112335217A (zh) * | 2018-08-17 | 2021-02-05 | 西门子股份公司 | 分布式数据处理方法、装置及系统和机器可读介质 |
CN110222105A (zh) * | 2019-05-14 | 2019-09-10 | 联动优势科技有限公司 | 数据汇总处理方法及装置 |
CN110222105B (zh) * | 2019-05-14 | 2021-06-29 | 联动优势科技有限公司 | 数据汇总处理方法及装置 |
CN114550833A (zh) * | 2022-02-15 | 2022-05-27 | 郑州大学 | 一种基于大数据的基因分析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105138679B (zh) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105138679A (zh) | 一种基于分布式缓存的数据处理系统及处理方法 | |
US11882054B2 (en) | Terminating data server nodes | |
US20170337224A1 (en) | Targeted Processing of Executable Requests Within A Hierarchically Indexed Distributed Database | |
US9917913B2 (en) | Large message support for a publish-subscribe messaging system | |
CN105956166B (zh) | 数据库读写方法和读写装置 | |
Grover et al. | Data Ingestion in AsterixDB. | |
CN111258978B (zh) | 一种数据存储的方法 | |
US9378053B2 (en) | Generating map task output with version information during map task execution and executing reduce tasks using the output including version information | |
US20120278344A1 (en) | Proximity grids for an in-memory data grid | |
US11210277B2 (en) | Distributing and processing streams over one or more networks for on-the-fly schema evolution | |
US8412721B2 (en) | Efficient data extraction by a remote application | |
CN103631870A (zh) | 一种用于大规模分布式数据处理的系统及其方法 | |
JP2012118987A (ja) | メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) | |
CN103412786A (zh) | 一种高性能服务器架构系统及数据处理方法 | |
US8959229B1 (en) | Intelligently provisioning cloud information services | |
US20150112934A1 (en) | Parallel scanners for log based replication | |
CN110119304A (zh) | 一种中断处理方法、装置及服务器 | |
CN111736907B (zh) | 一种自适应低延迟内存计算引擎的数据分析方法 | |
WO2024037629A1 (zh) | 区块链的数据整合方法、装置、计算机设备及存储介质 | |
CN105607606B (zh) | 一种基于双主板架构的数据采集装置及方法 | |
WO2024140058A1 (zh) | 数据表生命周期确定方法、装置、电子设备及存储介质 | |
US20150074351A1 (en) | Write-behind caching in distributed file systems | |
CN117950850A (zh) | 一种数据传输方法、装置、电子设备及计算机可读介质 | |
CN112948410A (zh) | 数据处理方法、装置、设备及介质 | |
CN117527805A (zh) | 一种基于服务器集群的多模态数据接入优化方法及系统 |
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 |