CN104978345B - 一种基于MapReduce的数据处理方法和装置 - Google Patents
一种基于MapReduce的数据处理方法和装置 Download PDFInfo
- Publication number
- CN104978345B CN104978345B CN201410140407.4A CN201410140407A CN104978345B CN 104978345 B CN104978345 B CN 104978345B CN 201410140407 A CN201410140407 A CN 201410140407A CN 104978345 B CN104978345 B CN 104978345B
- Authority
- CN
- China
- Prior art keywords
- mapreduce
- operations
- mapreduce operations
- flows
- merging
- 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
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Navigation (AREA)
Abstract
本发明公开了一种基于MapReduce的数据处理方法和装置,用以解决现有技术中的MapReduce流程在处理数据时会频繁进行磁盘读写操作从而造成额外开销,严重影响系统性能的问题。该方法包括:确定针对欲处理数据所要执行的第一MapReduce流程;所述第一MapReduce流程中包含多个MapReduce作业;将所述第一MapReduce流程中满足预先设置的合并规则的MapReduce作业进行合并,得到第二MapReduce流程;其中,所述合并规则满足:合并前的MapReduce作业的执行结果与合并后的MapReduce作业的执行结果相同;对所述预处理数据执行所述第二MapReduce流程。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种基于MapReduce的数据处理方法和装置。
背景技术
Hadoop是一个能够对大量数据进行处理的分布式系统基础框架,具有可靠、高效和可伸缩的特点。它主要由Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)和MapReduce组成。其中,MapReduce是一种分布式计算框架,主要用于大规模数据集的并行运算,其主要分为Map阶段(Map操作过程)和Reduce阶段(Reduce操作过程),这两个阶段的处理逻辑分别对应 Map函数和Reduce函数。其并行计算的大致思想为:将文件分成众多小文件在各个节点上运行(即Map操作过程),运行结果先暂时保存在本地;然后经过一次混洗和排序,把相关的Map输出读取出来并传送到同一个Reduce操作过程;Reduce处理完的结果再保存在分布式集群上。
MapReduce这种计算框架在Map和Reduce阶段均有对本地磁盘内数据的读写操作,而频繁的磁盘读写操作会造成额外开销,从而严重影响系统性能。
发明内容
本发明实施例提供一种基于MapReduce的数据处理方法和装置,用以解决现有技术中的MapReduce流程在处理数据时会频繁进行磁盘读写操作从而造成额外开销,严重影响系统性能的问题。
本发明实施例采用以下技术方案:
本发明实施例提供了一种基于MapReduce的数据处理方法,包括:
确定针对欲处理数据所要执行的第一MapReduce流程;所述第一 MapReduce流程中包含多个MapReduce作业;
将所述第一MapReduce流程中满足预先设置的合并规则的MapReduce作业进行合并,得到第二MapReduce流程;其中,所述合并规则满足:合并前的MapReduce作业的执行结果与合并后的MapReduce作业的执行结果相同;
对所述预处理数据执行所述第二MapReduce流程。
其中,所述合并规则,具体包括:
仅包含Map操作的MapReduce作业和与其相邻的下一个MapReduce作业合并;
包含Map操作和Reduce操作的MapReduce作业和与其相邻的下一个且最多一个仅包含Map操作的MapReduce作业合并。
其中,将所述第一MapReduce流程中满足预先设置的合并规则的 MapReduce作业进行合并,具体包括:
确定所述多个MapReduce作业中的每个MapReduce作业包含的操作;
根据所述合并规则以及确定出的每个MapReduce作业包含的操作,从所述多个MapReduce作业中的第一个执行的MapReduce作业开始循环执行下述合并操作,直至当前MapReduce作业不存在与其相邻的下一个MapReduce作业;
所述合并操作包括:
判断当前MapReduce作业是否和与其相邻的下一个MapReduce作业合并;
若判断结果为是,将当前MapReduce作业和与其相邻的下一个MapReduce 作业合并,得到合并后的MapReduce作业;并将合并后的MapReduce作业作为当前MapReduce作业;
若判断结果为否,结束此次合并;并将与当前MapReduce作业相邻的下一个MapReduce作业作为当前MapReduce作业。
其中,对所述预处理数据执行所述第二MapReduce流程之前,所述方法还包括:
针对所述第二MapReduce流程中的每个MapReduce作业分别执行下述操作:
当该MapReduce作业中包含指定操作,且所述指定操作的操作优先级不是最高时,调整所述指定操作的操作优先级,使所述指定操作的操作优先级提前;
对所述预处理数据执行所述第二MapReduce流程,具体包括:
对所述预处理数据执行调整后的第二MapReduce流程。
其中,所述指定操作为:选择操作和过滤操作;则
调整所述指定操作的操作优先级,具体包括:
按照所述过滤操作调整后的操作优先级最高的调整规则,对所述指定操作的操作优先级进行调整。
其中,所述指定操作为:选择操作或过滤操作;则
调整所述指定操作的操作优先级,具体包括:
按照所述选择操作或过滤操作调整后的操作优先级最高的调整规则,对所述指定操作的操作优先级进行调整。
本发明实施例还提供了一种基于MapReduce的数据处理装置,包括:
确定单元,用于确定针对欲处理数据所要执行的第一MapReduce流程;所述第一MapReduce流程中包含多个MapReduce作业;
合并单元,用于将确定单元确定的所述第一MapReduce流程中满足预先设置的合并规则的MapReduce作业进行合并,得到第二MapReduce流程;其中,所述合并规则满足:合并前的MapReduce作业的执行结果与合并后的 MapReduce作业的执行结果相同;
执行单元,用于对所述预处理数据执行合并单元得到的第二MapReduce 流程。
其中,所述合并规则,具体包括:
仅包含Map操作的MapReduce作业和与其相邻的下一个MapReduce作业合并;
包含Map操作和Reduce操作的MapReduce作业和与其相邻的下一个且最多一个仅包含Map操作的MapReduce作业合并。
其中,所述合并单元,具体包括:
操作确定模块,用于确定所述多个MapReduce作业中的每个MapReduce 作业包含的操作;
合并操作执行模块,用于根据所述合并规则以及操作确定模块确定出的每个MapReduce作业包含的操作,从所述多个MapReduce作业中的第一个执行的MapReduce作业开始循环执行下述合并操作,直至当前MapReduce作业不存在与其相邻的下一个MapReduce作业;
所述合并操作包括:
判断当前MapReduce作业是否和与其相邻的下一个MapReduce作业合并;
若判断结果为是,将当前MapReduce作业和与其相邻的下一个MapReduce 作业合并,得到合并后的MapReduce作业;并将合并后的MapReduce作业作为当前MapReduce作业;
若判断结果为否,结束此次合并;并将与当前MapReduce作业相邻的下一个MapReduce作业作为当前MapReduce作业。
其中,所述装置还包括:
调整单元,用于针对合并单元得到的第二MapReduce流程中的每个 MapReduce作业分别执行下述操作:
当该MapReduce作业中包含指定操作,且所述指定操作的操作优先级不是最高时,调整所述指定操作的操作优先级,使所述指定操作的操作优先级提前;
所述执行单元,具体用于:
对所述预处理数据执行调整单元调整后的第二MapReduce流程。
其中,所述指定操作包括:选择操作和过滤操作;则
所述调整单元,具体用于:
按照所述过滤操作调整后的操作优先级最高的调整规则,对所述指定操作的操作优先级进行调整。
其中,所述指定操作为:选择操作或过滤操作;则
所述调整单元,具体用于:
按照所述选择操作或过滤操作调整后的操作优先级最高的调整规则,对所述指定操作的操作优先级进行调整。
本发明实施例的有益效果如下:
本发明实施例中,通过将第一MapReduce流程中满足预先设置的合并规则的MapReduce作业进行合并,得到第二MapReduce流程,其中预先设置的合并规则需满足:合并前的MapReduce作业的执行结果与合并后的MapReduce 作业的执行结果相同。由于第二MapReduce流程中包含的MapReduce作业的个数必然少于第一MapReduce流程中包含的MapReduce作业的个数,因此该方案能够在执行结果不变的情况下,大大减少待执行的MapReduce作业的个数,从而使磁盘读写操作的次数也相应的减少,系统整体性能得到提升。
附图说明
图1为本发明实施例一提供的一种基于MapReduce的数据处理方法的原理流程图;
图2为本发明实施例二提供的一种基于MapReduce的数据处理方法的具体实现流程图在实际应用中的具体流程示意图;
图3为本发明实施例提供的第一MapReduce流程的示意图;
图4为本发明实施例提供的第二MapReduce流程的示意图;
图5为本发明实施例提供的一种MapReduce流程的处理装置的结构示意图。
具体实施方式
为了解决现有技术中的MapReduce流程在处理数据时会频繁进行磁盘读写操作从而造成额外开销,严重影响系统性能的问题,本发明对现有技术中 MapReduce流程的执行过程进行了深入研究并得出结论:在对数据执行 MapReduce流程时,每个MapReduce作业都要对磁盘进行数据的读写操作,因此,如果能够在不影响最后的执行结果的情况下,使MapReduce流程中的 MapReduce作业个数减少,就可以使执行MapReduce流程时的磁盘读写操作的次数减少,最终提高系统整体性能。
根据上述基本思想,本发明提出了一种基于MapReduce的数据处理方案。该技术方案中,通过将第一MapReduce流程中满足预先设置的合并规则的 MapReduce作业进行合并,得到第二MapReduce流程,其中预先设置的合并规则需满足:合并前的MapReduce作业的执行结果与合并后的MapReduce作业的执行结果相同。由于第二MapReduce流程中包含的MapReduce作业的个数必然少于第一MapReduce流程中包含的MapReduce作业的个数,因此该方案能够在执行结果不变的情况下,大大减少待执行的MapReduce作业的个数,从而使磁盘读写操作的次数也相应的减少,系统整体性能得到提升。
以下结合说明书附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限制本发明。并且在不冲突的情况下,本发明中的实施例及实施例的特征可以互相结合。
本发明实施例中提供了一种基于MapReduce的数据处理方法,如图1所示,为该方法的原理流程图,该方法具体包括下述步骤:
步骤11,确定针对欲处理数据所要执行的第一MapReduce流程,该第一 MapReduce流程中包含多个MapReduce作业。
步骤12,将该第一MapReduce流程中满足预先设置的合并规则的 MapReduce作业进行合并,得到第二MapReduce流程。
其中,预先设置的合并规则应该满足:合并前的MapReduce作业的执行结果与合并后的MapReduce作业的执行结果相同。
可选的,该合并规则可以但不限于具体包括如下内容:
1、仅包含Map操作的MapReduce作业和与其相邻的下一个MapReduce 作业合并;
2、包含Map操作和Reduce操作的MapReduce作业和与其相邻的下一个且最多一个仅包含Map操作的MapReduce作业合并。
在这种情况下,将第一MapReduce流程中满足预先设置的合并规则的 MapReduce作业进行合并,可以具体包括:
首先确定第一MapReduce流程的多个MapReduce作业中每个MapReduce 作业包含的操作;
然后根据上述合并规则以及确定出的每个MapReduce作业包含的操作,从上述多个MapReduce作业中的第一个执行的MapReduce作业开始循环执行下述合并操作,直至当前MapReduce作业不存在与其相邻的下一个MapReduce 作业;
其中,合并操作具体包括:
判断当前MapReduce作业是否和与其相邻的下一个MapReduce作业合并;
若判断结果为是,将当前MapReduce作业和与其相邻的下一个MapReduce 作业合并,得到合并后的MapReduce作业;并将合并后的MapReduce作业作为当前MapReduce作业;
若判断结果为否,结束此次合并;并将与当前MapReduce作业相邻的下一个MapReduce作业作为当前MapReduce作业。
步骤13,对预处理数据执行得到的第二MapReduce流程。
具体的,对预处理数据依次执行第二MapReduce流程中包含的每个 MapReduce作业。其中,在对预处理数据执行任意一个MapReduce作业时,依次读取该预处理数据中的每条数据,并针对读取的每条数据依次执行该MapReduce作业中包含的每个操作。该过程与现有技术相比,能够减少对预处理数据的扫描次数。因为现有技术中执行每个MapReduce作业时都需要对预处理数据扫描一次,而本发明实施例中,将多个MapReduce作业进行合并之后,合并后的MapReduce作业对预处理数据扫描一次。
可选的,在该步骤13执行之前,为了进一步提高得到的第二MapReduce 流程的执行效率,还可以针对该第二MapReduce流程中的每个MapReduce作业分别执行下述操作:
当该MapReduce作业中包含指定操作,且指定操作的操作优先级不是最高时,调整指定操作的操作优先级,使指定操作的操作优先级提前;
其中,当指定操作为:选择操作或过滤操作;时,该步骤可以具体包括:
按照选择操作或过滤操作调整后的操作优先级最高的调整规则,对指定操作的操作优先级进行调整。
当指定操作为:选择操作和过滤操作时,该步骤可以具体包括:
按照过滤操作的调整后的操作优先级最高的调整规则,对指定操作的操作优先级进行调整。
本发明实施例中,通过将第一MapReduce流程中满足预先设置的合并规则的MapReduce作业进行合并,得到第二MapReduce流程,其中预先设置的合并规则需满足:合并前的MapReduce作业的执行结果与合并后的MapReduce 作业的执行结果相同。由于第二MapReduce流程中包含的MapReduce作业的个数必然少于第一MapReduce流程中包含的MapReduce作业的个数,因此该方案能够在执行结果不变的情况下,大大减少待执行的MapReduce作业的个数,从而使磁盘读写操作的次数也相应的减少,系统整体性能得到提升。
基于上述原理,下面对本发明实施例提供的基于MapReduce的数据处理方法进行具体介绍,如图2所示,为该方法的具体实现流程图,该方法具体包括下述步骤:
步骤21,确定针对欲处理数据所要执行的第一MapReduce流程,该第一MapReduce流程中包含多个MapReduce作业。
步骤22,确定第一MapReduce流程的多个MapReduce作业中每个 MapReduce作业包含的操作;这里的操作指Map操作和Reduce操作。
步骤23,根据预先设置的合并规则以及确定出的每个MapReduce作业包含的操作,从上述多个MapReduce作业中的第一个执行的MapReduce作业开始循环执行下述合并操作,直至当前MapReduce作业不存在与其相邻的下一个MapReduce作业,得到第二MapReduce流程;
其中,合并操作具体包括:
判断当前MapReduce作业是否和与其相邻的下一个MapReduce作业合并;
若判断结果为是,将当前MapReduce作业和与其相邻的下一个MapReduce 作业合并,得到合并后的MapReduce作业;并将合并后的MapReduce作业作为当前MapReduce作业;
若判断结果为否,结束此次合并;并将与当前MapReduce作业相邻的下一个MapReduce作业作为当前MapReduce作业。
而预先设置的合并规则为:
合并规则1:仅包含Map操作的MapReduce作业和与其相邻的下一个 MapReduce作业合并;
合并规则2:包含Map操作和Reduce操作的MapReduce作业和与其相邻的下一个且最多一个仅包含Map操作的MapReduce作业合并。
之所以是“最多一个”,是为了保证MapReduce作业中的Reduce操作的执行效率,因为如果包含Map操作和Reduce操作的MapReduce作业和其后面的多个MapReduce作业合并的话,会使合并后的Reduce操作附加的Map操作过多,尤其在归并到单个Reduce的数据规模较大时,后续较多的Map操作集中在单个Reduce操作节点执行,尽管减小了磁盘读写IO开销,但总体执行时间,反不如直接启动下一个MapReduce作业,将大数据集拆分为多个小数据集分散到更多数量的Map操作中并行处理效率高。
针对上述合并规则1,即在当前MapReduce作业仅包含Map操作时,则直接将其和与其相邻的下一个MapReduce作业合并;这里的下一个MapReduce 作业可以为包含任意操作的MapReduce作业;
针对上述合并规则2,即在当前MapReduce作业包含Map操作和Reduce 操作时,首先判断与其相邻的下一个MapReduce作业是否仅包含Map操作;在判断出与当前MapReduce作业相邻的下一个MapReduce作业仅包含Map操作时,则将当前MapReduce作业和其相邻的下一个MapReduce作业合并,并结束此次合并;而在判断出与当前MapReduce作业相邻的下一个MapReduce 作业不是仅包含Map操作时,直接结束此次合并。
其中,上述步骤22和步骤23与实施例一中的步骤12对应。
步骤24,针对得到的第二MapReduce流程中的每个MapReduce作业,当其包含选择操作而不包含过滤操作时,且选择操作的操作优先级不是最高,将选择操作的操作优先级调整至最高;
步骤25,针对得到的第二MapReduce流程中的每个MapReduce作业,当其包含过滤操作而不包含选择操作时,且过滤操作的操作优先级不是最高,将过滤操作的操作优先级调整至最高;
步骤26,针对得到的第二MapReduce流程中的每个MapReduce作业,当其同时包含选择操作和过滤操作,且过滤操作的操作优先级不是最高时,将过滤操作的操作优先级调整至最高,将选择操作的操作优先级提前。
在实际应用中,根据第二MapReduce流程中的每个MapReduce作业的具体情况选择执行上述步骤24、步骤25或步骤26。
步骤27,对预处理数据执行操作优先级调整后的第二MapReduce流程。
下面针对上述实施例二中的步骤22和步骤23举例详细说明。
如图3所示,为本发明实施例提供的第一MapReduce流程的示意图。
首先确定该第一MapReduce流程中每个MapReduce作业包含的操作。参考图3,其中,MapReduce作业1、MapReduce作业2、MapReduce作业4和MapReduce作业5均仅包含Map操作,MapReduce作业3包含Map操作和 Reduce操作。
然后按照MapReduce作业的执行先后顺序,对于MapReduce作业1,仅包含Map操作,应用合并规则1,只需保证后续是MapReduce作业即可,因此将MapReduce作业1与MapReduce作业2合并,得到合并后的MapReduce 作业12;
对于合并后的MapReduce作业12,仅包含Map操作,应用合并规则1,将后续的MapReduce作业3合并,得到合并后的MapReduce作业123;
对于合并后的MapReduce作业123,包含Map操作和Reduce操作,应用合并规则2,判断MapReduce作业4是否仅包含Map操作,当判断结果为是时,则合并MapReduce作业4并结束此次合并,否则直接结束此次合并。
在本实例中,MapReduce作业4仅包含Map操作,因此合并MapReduce 作业4,得到合并后的MapReduce作业1234,并结束此次合并。
对于MapReduce作业5,其后续没有其它MapReduce作业,因此结束此次合并。
在本实例中,MapReduce作业1、MapReduce作业2、MapReduce作业3 和MapReduce作业4在不影响执行结果的情况下被合并为一个MapReduce作业,如图4所示,为本发明实施例中得到的第二MapReduce流程的示意图,包括MapReduce作业1234和MapReduce作业5,因此,该MapReduce流程由原来的5个MapReduce作业变成了2个MapReduce作业,因此磁盘读写次数也由原来的5次减少为2次,系统整体性能得到提升。
基于上述方法,本发明实施例还提供了一种基于MapReduce的数据处理装置,如图5所示,为该处理装置的结构示意图,包括:
确定单元51,用于确定针对欲处理数据所要执行的第一MapReduce流程;所述第一MapReduce流程中包含多个MapReduce作业;
合并单元52,用于将确定单元51确定的所述第一MapReduce流程中满足预先设置的合并规则的MapReduce作业进行合并,得到第二MapReduce流程;其中,所述合并规则满足:合并前的MapReduce作业的执行结果与合并后的 MapReduce作业的执行结果相同;
执行单元53,用于对所述预处理数据执行合并单元52得到的第二 MapReduce流程。
其中,所述合并规则,具体包括:
仅包含Map操作的MapReduce作业和与其相邻的下一个MapReduce作业合并;
包含Map操作和Reduce操作的MapReduce作业和与其相邻的下一个且最多一个仅包含Map操作的MapReduce作业合并。
其中,所述合并单元52,具体包括:
操作确定模块521,用于确定所述多个MapReduce作业中的每个 MapReduce作业包含的操作;
合并操作执行模块522,用于根据所述合并规则以及操作确定模块521确定出的每个MapReduce作业包含的操作,从所述多个MapReduce作业中的第一个执行的MapReduce作业开始循环执行下述合并操作,直至当前MapReduce 作业不存在与其相邻的下一个MapReduce作业;
所述合并操作包括:
判断当前MapReduce作业是否和与其相邻的下一个MapReduce作业合并;
若判断结果为是,将当前MapReduce作业和与其相邻的下一个MapReduce 作业合并,得到合并后的MapReduce作业;并将合并后的MapReduce作业作为当前MapReduce作业;
若判断结果为否,结束此次合并;并将与当前MapReduce作业相邻的下一个MapReduce作业作为当前MapReduce作业。
其中,所述装置还包括:
调整单元54,用于针对合并单元得到的第二MapReduce流程中的每个MapReduce作业分别执行下述操作:
当该MapReduce作业中包含指定操作,且所述指定操作的操作优先级不是最高时,调整所述指定操作的操作优先级,使所述指定操作的操作优先级提前;
所述执行单元53,具体用于:
对所述预处理数据执行调整单元54调整后的第二MapReduce流程。
其中,所述指定操作包括:选择操作和过滤操作;则
所述调整单元54,具体用于:
按照所述过滤操作调整后的操作优先级最高的调整规则,对所述指定操作的操作优先级进行调整。
其中,所述指定操作为:选择操作或过滤操作;则
所述调整单元54,具体用于:
按照所述选择操作或过滤操作调整后的操作优先级最高的调整规则,对所述指定操作的操作优先级进行调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种基于MapReduce的数据处理方法,其特征在于,包括:
确定针对欲处理数据所要执行的第一MapReduce流程;所述第一MapReduce流程中包含多个MapReduce作业;
将所述第一MapReduce流程中满足预先设置的合并规则的MapReduce作业进行合并,得到第二MapReduce流程;其中,所述合并规则满足:合并前的MapReduce作业的执行结果与合并后的MapReduce作业的执行结果相同;
针对所述第二MapReduce流程中的每个MapReduce作业分别执行下述操作:
当该MapReduce作业中包含指定操作,且所述指定操作的操作优先级不是最高时,调整所述指定操作的操作优先级,使所述指定操作的操作优先级提前;
对所述欲处理数据执行调整后的第二MapReduce流程;
其中,所述合并规则,具体包括:
仅包含Map操作的MapReduce作业和与其相邻的下一个MapReduce作业合并;
包含Map操作和Reduce操作的MapReduce作业和与其相邻的下一个且最多一个仅包含Map操作的MapReduce作业合并。
2.如权利要求1所述的方法,其特征在于,将所述第一MapReduce流程中满足预先设置的合并规则的MapReduce作业进行合并,具体包括:
确定所述多个MapReduce作业中的每个MapReduce作业包含的操作;
根据所述合并规则以及确定出的每个MapReduce作业包含的操作,从所述多个MapReduce作业中的第一个执行的MapReduce作业开始循环执行下述合并操作,直至当前MapReduce作业不存在与其相邻的下一个MapReduce作业;
所述合并操作包括:
判断当前MapReduce作业是否和与其相邻的下一个MapReduce作业合并;
若判断结果为是,将当前MapReduce作业和与其相邻的下一个MapReduce作业合并,得到合并后的MapReduce作业;并将合并后的MapReduce作业作为当前MapReduce作业;
若判断结果为否,结束此次合并;并将与当前MapReduce作业相邻的下一个MapReduce作业作为当前MapReduce作业。
3.如权利要求1所述的方法,其特征在于,所述指定操作为:选择操作和过滤操作;则
调整所述指定操作的操作优先级,具体包括:
按照所述过滤操作调整后的操作优先级最高的调整规则,对所述指定操作的操作优先级进行调整。
4.如权利要求1所述的方法,其特征在于,所述指定操作为:选择操作或过滤操作;则
调整所述指定操作的操作优先级,具体包括:
按照所述选择操作或过滤操作调整后的操作优先级最高的调整规则,对所述指定操作的操作优先级进行调整。
5.一种基于MapReduce的数据处理装置,其特征在于,包括:
确定单元,用于确定针对欲处理数据所要执行的第一MapReduce流程;所述第一MapReduce流程中包含多个MapReduce作业;
合并单元,用于将确定单元确定的所述第一MapReduce流程中满足预先设置的合并规则的MapReduce作业进行合并,得到第二MapReduce流程;其中,所述合并规则满足:合并前的MapReduce作业的执行结果与合并后的MapReduce作业的执行结果相同;
调整单元,用于针对合并单元得到的第二MapReduce流程中的每个MapReduce作业分别执行下述操作:
当该MapReduce作业中包含指定操作,且所述指定操作的操作优先级不是最高时,调整所述指定操作的操作优先级,使所述指定操作的操作优先级提前;
执行单元,用于对所述欲处理数据执行合并单元得到的第二MapReduce流程;
其中,所述合并规则,具体包括:
仅包含Map操作的MapReduce作业和与其相邻的下一个MapReduce作业合并;
包含Map操作和Reduce操作的MapReduce作业和与其相邻的下一个且最多一个仅包含Map操作的MapReduce作业合并。
6.如权利要求5所述的装置,其特征在于,所述合并单元,具体包括:
操作确定模块,用于确定所述多个MapReduce作业中的每个MapReduce作业包含的操作;
合并操作执行模块,用于根据所述合并规则以及操作确定模块确定出的每个MapReduce作业包含的操作,从所述多个MapReduce作业中的第一个执行的MapReduce作业开始循环执行下述合并操作,直至当前MapReduce作业不存在与其相邻的下一个MapReduce作业;
所述合并操作包括:
判断当前MapReduce作业是否和与其相邻的下一个MapReduce作业合并;
若判断结果为是,将当前MapReduce作业和与其相邻的下一个MapReduce作业合并,得到合并后的MapReduce作业;并将合并后的MapReduce作业作为当前MapReduce作业;
若判断结果为否,结束此次合并;并将与当前MapReduce作业相邻的下一个MapReduce作业作为当前MapReduce作业。
7.如权利要求5所述的装置,其特征在于,所述指定操作包括:选择操作和过滤操作;则
所述调整单元,具体用于:
按照所述过滤操作调整后的操作优先级最高的调整规则,对所述指定操作的操作优先级进行调整。
8.如权利要求5所述的装置,其特征在于,所述指定操作为:选择操作或过滤操作;则
所述调整单元,具体用于:
按照所述选择操作或过滤操作调整后的操作优先级最高的调整规则,对所述指定操作的操作优先级进行调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410140407.4A CN104978345B (zh) | 2014-04-09 | 2014-04-09 | 一种基于MapReduce的数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410140407.4A CN104978345B (zh) | 2014-04-09 | 2014-04-09 | 一种基于MapReduce的数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104978345A CN104978345A (zh) | 2015-10-14 |
CN104978345B true CN104978345B (zh) | 2018-08-17 |
Family
ID=54274860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410140407.4A Active CN104978345B (zh) | 2014-04-09 | 2014-04-09 | 一种基于MapReduce的数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104978345B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708606B (zh) * | 2015-11-17 | 2020-07-07 | 阿里巴巴集团控股有限公司 | 基于MapReduce的数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297807A (zh) * | 2013-06-21 | 2013-09-11 | 哈尔滨工业大学深圳研究生院 | 一种基于hadoop平台的提高视频转码效率的方法 |
CN103699441A (zh) * | 2013-12-05 | 2014-04-02 | 深圳先进技术研究院 | 基于任务粒度的MapReduce报表任务执行方法 |
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
-
2014
- 2014-04-09 CN CN201410140407.4A patent/CN104978345B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297807A (zh) * | 2013-06-21 | 2013-09-11 | 哈尔滨工业大学深圳研究生院 | 一种基于hadoop平台的提高视频转码效率的方法 |
CN103699441A (zh) * | 2013-12-05 | 2014-04-02 | 深圳先进技术研究院 | 基于任务粒度的MapReduce报表任务执行方法 |
CN103701635A (zh) * | 2013-12-10 | 2014-04-02 | 中国科学院深圳先进技术研究院 | 一种在线配置Hadoop参数的方法和装置 |
Non-Patent Citations (1)
Title |
---|
Multi-Query Optimization in MapReduce Framework;Guoping Wang 等;《Proceedings of the VLDB Endowment》;20131231;第7卷(第3期);第145~156页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104978345A (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9053067B2 (en) | Distributed data scalable adaptive map-reduce framework | |
US9152601B2 (en) | Power-efficient nested map-reduce execution on a cloud of heterogeneous accelerated processing units | |
WO2014140971A1 (en) | Deploying parallel data integration applications to distributed computing environments | |
CN103856548B (zh) | 动态资源调度方法和动态资源调度器 | |
CN105743677B (zh) | 一种资源配置方法及装置 | |
CN110659278A (zh) | 基于cpu-gpu异构架构的图数据分布式处理系统 | |
CN103729257A (zh) | 一种分布式并行计算方法以及系统 | |
CN105589748A (zh) | 一种业务请求处理方法及装置 | |
US20130138686A1 (en) | Device and method for arranging query | |
CN106407231A (zh) | 一种数据多线程导出方法及系统 | |
CN112884086A (zh) | 模型训练方法、装置、设备、存储介质以及程序产品 | |
CN108415912A (zh) | 基于MapReduce模型的数据处理方法和设备 | |
US10326824B2 (en) | Method and system for iterative pipeline | |
CN104853061B (zh) | 一种基于Hadoop的视频处理方法及系统 | |
CN106339458A (zh) | 一种基于弹性分布式数据集的Stage划分方法和终端 | |
CN104978345B (zh) | 一种基于MapReduce的数据处理方法和装置 | |
CN110502337B (zh) | 针对Hadoop MapReduce中混洗阶段的优化系统 | |
Gupta et al. | Map-based graph analysis on MapReduce | |
CN110958192A (zh) | 一种基于虚拟交换机的虚拟数据中心资源分配系统及方法 | |
WO2019100950A1 (zh) | 一种nsi的pnf更新方法、设备和计算机可读存储介质 | |
CN103176843B (zh) | MapReduce分布式系统的文件迁移方法及设备 | |
JP6563363B2 (ja) | 設定サーバ、設定方法および設定プログラム | |
CN105260405B (zh) | 一种网络爬虫方法及装置 | |
CN111343110B (zh) | 报文处理方法、sdn交换机及计算机可读存储介质 | |
CN107391250B (zh) | 一种提高Mapreduce任务Shuffle性能的控制器调度方法 |
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 |