• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 25
    • 下载费用:30 金币  

    重庆时时彩四星杀号技巧: 一种处理串行任务的数据处理装置及方法.pdf

    关 键 词:
    一种 处理 串行 任务 数据处理 装置 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201410069692.5

    申请日:

    2014.02.27

    公开号:

    CN103838626A

    公开日:

    2014.06.04

    当前法律状态:

    终止

    有效性:

    无权

    法律详情: 专利权的视为放弃IPC(主分类):G06F 9/46放弃生效日:20180601|||实质审查的生效IPC(主分类):G06F 9/46申请日:20140227|||公开
    IPC分类号: G06F9/46 主分类号: G06F9/46
    申请人: 华为技术有限公司
    发明人: 刘衍初; 刘超
    地址: 518129 广东省深圳市龙岗区坂田华为总部办公楼
    优先权:
    专利代理机构: 北京中博世达专利商标代理有限公司 11274 代理人: 申健
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201410069692.5

    授权公告号:

    ||||||

    法律状态公告日:

    2018.06.01|||2014.07.02|||2014.06.04

    法律状态类型:

    专利权的视为放弃|||实质审查的生效|||公开

    摘要

    本发明实施例公开了一种处理串行任务的数据处理装置及方法,能够在数据处理的过程中减少从分布式系统中的各个节点设备的磁盘上读取输出结果的次数,从而减少处理大量数据所需的时间以及所占用的网络资源。本发明的方法包括:获取至少两个MapReduce任务,至少两个MapReduce任务按照执行先后顺序串行排列;其中,当两个MapReduce任务串行排列时,前一个MapReduce任务被执行后得到的输出值为后一个MapReduce任务的输入值;合并至少两个MapReduce任务得到目标MapReduce任务;执行目标MapReduce任务,并得到目标MapReduce任务的输出结果。

    权利要求书

    权利要求书
    1.  一种处理串行任务的数据处理装置,其特征在于,包括:
    任务提取???,用于获取至少两个MapReduce任务,所述至少两个MapReduce任务按照执行先后顺序串行排列所述至少两个MapReduce任务按照执行先后顺序串行排列;其中,当两个MapReduce任务串行排列时,前一个MapReduce任务被执行后得到的输出值为后一个MapReduce任务的输入值;
    合并???,用于合并所述至少两个MapReduce任务得到目标MapReduce任务;
    执行???,用于执行目标MapReduce任务,并得到所述目标MapReduce任务的输出结果。

    2.  根据权利要求1所述的处理串行任务的数据处理装置,其特征在于,所述合并??榘ǎ?BR>分析单元,用于从所述至少两个MapReduce任务中,提取每一个MapReduce任务对应的Map任务;
    合并单元,用于合并所述至少两个MapReduce任务中每一个MapReduce任务对应的Map任务的代码,并得到合并后的Map任务的代码,其中,当所述至少两个MapReduce任务存在信息依赖关系时,所述至少两个MapReduce任务按照执行的先后顺序依次排列,并且前一个MapReduce任务对应的Map任务的代码的输出值作为与所述前一个MapReduce任务相邻的后一个MapReduce任务对应的Map任务的代码的输入值;
    目标任务生成单元,用于利用所述合并后的Map任务的代码,得到所述目标MapReduce任务。

    3.  根据权利要求2所述的处理串行任务的数据处理装置,其特征在于,所述执行??榘ǎ?BR>执行单元,用于执行所述合并后的Map任务;
    发送单元,用于将所述合并后的Map任务的执行结果发送至用于执行Reduce任务的设备;
    接收单元,用于接收所述用于执行Reduce任务的设备发送的所述输出结果,所述输出结果由所述用于执行Reduce任务的设备根据所述合并后的Map任务的执行结果得到。

    4.  根据权利要求2或3所述的处理串行任务的数据处理装置,其特征在于,所述合并单元,具体用于:
    获取每一个MapReduce任务对应的Map任务的环境准备操作代码、逻辑操作代码和环境清理操作代码;
    先编译所获取的每一个MapReduce任务对应的Map任务的环境准备操作代码;再编译所获取的每一个MapReduce任务对应的Map任务的逻辑操作代码;之后编译所获取的每一个MapReduce任务对应的Map任务的环境清理操作代码;最后得到所述合并后的Map任务的代码。

    5.  一种处理串行任务的数据处理方法,其特征在于,包括:
    获取至少两个MapReduce任务,所述至少两个MapReduce任务按照执行先后顺序串行排列;其中,当两个MapReduce任务串行排列时,前一个MapReduce任务被执行后得到的输出值为后一个MapReduce任务的输入值;
    合并所述至少两个MapReduce任务得到目标MapReduce任务;
    执行目标MapReduce任务,并得到所述目标MapReduce任务的输出结果。

    6.  根据权利要求5所述的处理串行任务的数据处理方法,其特征在于,所述合并所述至少两个MapReduce任务得到目标MapReduce任务,具体包括:
    从所述至少两个MapReduce任务中,提取每一个MapReduce任务对应的Map 任务;
    合并所述至少两个MapReduce任务中每一个MapReduce任务对应的Map任务的代码,并得到合并后的Map任务的代码,其中,当所述至少两个MapReduce任务存在信息依赖关系时,所述至少两个MapReduce任务按照执行的先后顺序依次排列,并且前一个MapReduce任务对应的Map任务的代码的输出值作为与所述前一个MapReduce任务相邻的后一个MapReduce任务对应的Map任务的代码的输入值;
    利用所述合并后的Map任务的代码,得到所述目标MapReduce任务。

    7.  根据权利要求6所述的处理串行任务的数据处理方法,其特征在于,所述执行目标MapReduce任务,得到所述目标MapReduce任务的输出结果,包括:
    执行所述合并后的Map任务,并将所述合并后的Map任务的执行结果发送至用于执行Reduce任务的设备;
    接收所述用于执行Reduce任务的设备发送的所述输出结果,所述输出结果由所述用于执行Reduce任务的设备根据所述合并后的Map任务的执行结果得到。

    8.  根据权利要求6或7所述的处理串行任务的数据处理方法,其特征在于,所述合并所述至少两个MapReduce任务中每一个MapReduce任务对应的Map任务的代码,并得到合并后的Map任务的代码,具体包括:
    获取每一个MapReduce任务对应的Map任务的环境准备操作代码、逻辑操作代码和环境清理操作代码;
    先编译所获取的每一个MapReduce任务对应的Map任务的环境准备操作代码;再编译所获取的每一个MapReduce任务对应的Map任务的逻辑操作代码;之后编译所获取的每一个MapReduce任务对应的Map任务的环境清理操作代码;最后得到所述合并后的Map任务的代码。

    说明书

    说明书一种处理串行任务的数据处理装置及方法
    技术领域
    本发明涉及电子信息技术领域,尤其涉及一种处理串行任务的数据处理装置及方法。
    背景技术
    目前,由于数据规模越来越大,为了有效处理大规模数据,已经发展出了很多适用于大数据处理的技术。其中,MapReduce是一种常用的用于处理大规模数据的技术。在应用了MapReduce的编程模型中,需要使用Map(映射)函数和Reduce(规约)函数。其中,map函数:接受一个键值对(key-value pair),产生一组中间键值对,并将map函数产生的中间键值对里键相同的值传递给一个reduce函数。reduce函数:接受一个键,以及相关的一组值,将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)。
    在实际应用中,一个MapReduce任务可以由一个基于Map(映射)函数的Map任务和一个基于Reduce(规约)函数的Reduce任务组成,例如:在HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)技术中,经常需要执行串行的多个MapReduce任务,对于每一个MapReduce任务,需要先执行Map任务,并将输出结果存储到分布式系统中的各个节点设备的磁盘上。之后再通过采用HTTP协议从分布式系统中的各个节点设备上远程拷贝每一个Map任务执行完毕后的输出结果,再对该输出结果进行执行Reduce任务。并重复这个过程,直至将所有的MapReduce流程依次执行完毕。
    由此可见,执行一个MapReduce任务需要从分布式系统的节点设备的磁盘上读取至少一次输出结果。如果执行多个串行MapReduce任务过程中,就需要占用很多时间和网络带宽分多次从分布式系统中的各个节点设备的磁盘上读取输出 结果,从而增加处理大量数据所需的时间以及网络资源。
    发明内容
    本发明的实施例提供一种处理串行任务的数据处理装置及方法,能够在数据处理的过程中减少从分布式系统中的各个节点设备的磁盘上读取输出结果的次数,从而减少处理大量数据所需的时间以及所占用的网络资源。
    为达到上述目的,本发明的实施例采用如下技术方案:
    第一方面,本发明的实施例提供处理串行任务的数据处理装置,其特征在于,包括:
    任务提取???,用于获取至少两个MapReduce任务,所述至少两个MapReduce任务按照执行先后顺序串行排列所述至少两个MapReduce任务按照执行先后顺序串行排列;其中,当两个MapReduce任务串行排列时,前一个MapReduce任务被执行后得到的输出值为后一个MapReduce任务的输入值;
    合并???,用于合并所述至少两个MapReduce任务得到目标MapReduce任务;
    执行???,用于执行目标MapReduce任务,并得到所述目标MapReduce任务的输出结果。
    结合第一方面,在第一方面的第一种可能的实现方式中,所述合并??榘ǎ?
    分析单元,用于从所述至少两个MapReduce任务中,提取每一个MapReduce任务对应的Map任务;
    合并单元,用于合并所述至少两个MapReduce任务中每一个MapReduce任务对应的Map任务的代码,并得到合并后的Map任务的代码,其中,当所述至少两个MapReduce任务存在信息依赖关系时,所述至少两个MapReduce任务按照执行 的先后顺序依次排列,并且前一个MapReduce任务对应的Map任务的代码的输出值作为与所述前一个MapReduce任务相邻的后一个MapReduce任务对应的Map任务的代码的输入值;
    目标任务生成单元,用于利用所述合并后的Map任务的代码,得到所述目标MapReduce任务。
    结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述执行??榘ǎ?
    执行单元,用于执行所述合并后的Map任务;
    发送单元,用于将所述合并后的Map任务的执行结果发送至用于执行Reduce任务的设备;
    接收单元,用于接收所述用于执行Reduce任务的设备发送的所述输出结果,所述输出结果由所述用于执行Reduce任务的设备根据所述合并后的Map任务的执行结果得到。
    结合第一方面的第一或二种可能的实现方式,在第三种可能的实现方式中,所述合并单元,具体用于:
    获取每一个MapReduce任务对应的Map任务的环境准备操作代码、逻辑操作代码和环境清理操作代码;
    先编译所获取的每一个MapReduce任务对应的Map任务的环境准备操作代码;再编译所获取的每一个MapReduce任务对应的Map任务的逻辑操作代码;之后编译所获取的每一个MapReduce任务对应的Map任务的环境清理操作代码;最后得到所述合并后的Map任务的代码。
    第二方面,本发明的实施例提供一种处理串行任务的数据处理方法,其特征在于,包括:
    获取至少两个MapReduce任务,所述至少两个MapReduce任务按照执行先后顺序串行排列;其中,当两个MapReduce任务串行排列时,前一个MapReduce任务被执行后得到的输出值为后一个MapReduce任务的输入值;
    合并所述至少两个MapReduce任务得到目标MapReduce任务;
    执行目标MapReduce任务,并得到所述目标MapReduce任务的输出结果。
    结合第二方面,在第二方面的第一种可能的实现方式中,所述合并所述至少两个MapReduce任务得到目标MapReduce任务,具体包括:
    从所述至少两个MapReduce任务中,提取每一个MapReduce任务对应的Map任务;
    合并所述至少两个MapReduce任务中每一个MapReduce任务对应的Map任务的代码,并得到合并后的Map任务的代码,其中,当所述至少两个MapReduce任务存在信息依赖关系时,所述至少两个MapReduce任务按照执行的先后顺序依次排列,并且前一个MapReduce任务对应的Map任务的代码的输出值作为与所述前一个MapReduce任务相邻的后一个MapReduce任务对应的Map任务的代码的输入值;
    利用所述合并后的Map任务的代码,得到所述目标MapReduce任务。
    结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述执行目标MapReduce任务,得到所述目标MapReduce任务的输出结果,包括:
    执行所述合并后的Map任务,并将所述合并后的Map任务的执行结果发送至用于执行Reduce任务的设备;
    接收所述用于执行Reduce任务的设备发送的所述输出结果,所述输出结果 由所述用于执行Reduce任务的设备根据所述合并后的Map任务的执行结果得到。
    结合第二方面的第一或二种可能的实现方式,在第三种可能的实现方式中,其特征在于,所述合并所述至少两个MapReduce任务中每一个MapReduce任务对应的Map任务的代码,并得到合并后的Map任务的代码,具体包括:
    获取每一个MapReduce任务对应的Map任务的环境准备操作代码、逻辑操作代码和环境清理操作代码;
    先编译所获取的每一个MapReduce任务对应的Map任务的环境准备操作代码;再编译所获取的每一个MapReduce任务对应的Map任务的逻辑操作代码;之后编译所获取的每一个MapReduce任务对应的Map任务的环境清理操作代码;最后得到所述合并后的Map任务的代码。
    第三方面,本发明的实施例提供一种处理串行任务的计算设备,其特征在于,所述计算设备至少包括:处理器和通信接口,所述处理器和通信接口通过所述计算设备的总线相连接,所述通信接口用于所述计算设备与外部存储设备进行数据传输;
    所述处理器,用于获取至少两个MapReduce任务,并合并所述至少两个MapReduce任务得到目标MapReduce任务,所述至少两个MapReduce任务按照执行先后顺序串行排列;其中,当两个MapReduce任务串行排列时,前一个MapReduce任务被执行后得到的输出值为后一个MapReduce任务的输入值;
    所述处理器,还用于执行目标MapReduce任务,并得到所述目标MapReduce任务的输出结果,并将所述输出结果发送至所述通信接口;
    所述通信接口,用于向所述外部存储设备发送所述输出结果。
    结合第三方面,在第三方面的第一种可能的实现方式中,所述处理器,具体用于从所述至少两个MapReduce任务中,提取每一个MapReduce任务对应的Map 任务;并根据所述至少两个MapReduce任务相互之间的信息依赖关系,合并所述至少两个MapReduce任务中每一个MapReduce任务对应的Map任务的代码,并得到合并后的Map任务的代码,其中,当所述至少两个MapReduce任务存在信息依赖关系时,所述至少两个MapReduce任务按照执行的先后顺序依次排列,并且前一个MapReduce任务对应的Map任务的代码的输出值作为与所述前一个MapReduce任务相邻的后一个MapReduce任务对应的Map任务的代码的输入值;并利用所述合并后的Map任务的代码,得到所述目标MapReduce任务。
    结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器,具体用于执行所述合并后的Map任务,并将所述合并后的Map任务的执行结果发送至用于执行Reduce任务的设备;
    接收所述用于执行Reduce任务的设备发送的所述输出结果,所述输出结果由所述用于执行Reduce任务的设备根据所述合并后的Map任务的执行结果得到。
    结合第三方面的第一或二种可能的实现方式,在第三种可能的实现方式中,所述处理器,具体用于获取每一个MapReduce任务对应的Map任务的环境准备操作代码、逻辑操作代码和环境清理操作代码;并先编译所获取的每一个MapReduce任务对应的Map任务的环境准备操作代码;再编译所获取的每一个MapReduce任务对应的Map任务的逻辑操作代码;之后编译所获取的每一个MapReduce任务对应的Map任务的环境清理操作代码;最后得到所述合并后的Map任务的代码。
    本发明实施例提供的处理串行任务的计算设备、数据处理装置及方法,能够合并多个串行MapReduce任务,并执行合并得到的MapReduce任务。在合并得到的MapReduce任务中,只需执行一次Reduce任务。因此本发明通过合并执行MapReduce任务减少了执行串行MapReduce任务时所需Reduce任务的次数,因此 节省了执行Reduce任务过程中从分布式系统中的各个节点设备的磁盘上读取输出结果所需占用的时间和网络带宽,从而减少处理大量数据所需的时间以及网络资源。
    附图说明
    为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
    图1为本发明实施例提供的一种处理串行任务的数据处理方法的流程图;
    图1a、图1b为本发明实施例提供的具体实例的逻辑示意图;
    图2为本发明实施例提供的另一种处理串行任务的数据处理方法的流程图;
    图3为本发明实施例提供的再一种处理串行任务的数据处理方法的流程图;
    图4为本发明实施例提供的一种具体实例的示意图;
    图5为本发明实施例提供的一种处理串行任务的计算设备的结构示意图;
    图6为本发明实施例提供的一种处理串行任务的数据处理装置的结构示意图;
    图7为本发明实施例提供的另一种处理串行任务的数据处理装置的结构示意图。
    具体实施方式
    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例?;诒痉⒚髦械氖凳├?,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明?;さ姆段?。
    在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义?;褂Φ崩斫?,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
    需要说明的是,本发明实施例提供的实施例可以由任何一种具有数据处理和传输功能的计算设备执行。比如:服务器、计算机或终端设备等。具体的,本实施例的实施过程可以利用现有的实现MapReduce技术的硬件环境,并可以将经过本实施例的方法处理后的数据存储在分布式系统上。
    本发明实施例提供一种处理串行任务的数据处理方法,如图1所示,包括:
    101,计算设备获取至少两个MapReduce任务。
    其中,至少两个MapReduce任务按照执行先后顺序串行排列;当两个MapReduce任务串行排列时,前一个MapReduce任务被执行后得到的输出值为后一个MapReduce任务的输入值。当计算设备开始运行M/R(MapReduce框架)并开始处理MapReduce任务时,获取至少两个按照执行先后顺序串行排列MapReduce任务,例如:计算设备获取的是一连串用于实现计算过程的MapReduce任务,其中前一个MapReduce任务的处理结果可以是之后一个或多个的MapReduce任务的输入值。
    102,合并所述至少两个MapReduce任务得到目标MapReduce任务。
    在本实施例中,合并所述至少两个MapReduce任务的过程可以理解为将至少两个MapReduce任务各自的Map任务进行合并,例如:
    如图1a所示,其中“第一映射任务”表示Map1任务,“第二映射任务”表示Map2任务,…,“第五映射任务”表示Map5任务?!盎蛉挝瘛北硎綬educe任务。MapReduce1-MapReduce2-…-MapReduce N为串行的任务,N为大于等于3的整数。MapReduce1任务包括执行Map1任务后输出结果Output1。MapReduce2任务包括执行Map2任务后输出结果Output2,并且需要将Output1作为执行Map2过程的输入参数?!?。MapReduce N任务包括执行Map N任务后输出结果Output N,并且需要将Output N-1作为执行Map N过程的输入参数。则计算设备将Map1任务、Map2任务、…Map N任务进行合并。并生成一个新的Map任务,称之为目标Map任务,执行目标Map任务的后的输出结果即为Output N。执行目标Map任务并输出了Output N后,再将Output N发送至用于执行Reduce任务的设备,这样就实现了计算设备将MapReduce1、MapReduce2、…、MapReduce N进行合并得到目标MapReduce任务,而目标MapReduce任务即为目标Map任务+Reduce任务的组合。比如:
    MapReduce1-MapReduce2–MapReduce3–MapReduce4–MapReduce5为用于实现累加计算的串行任务。其中原始数值为10,MapReduce1任务为用于在原始数值上加1的任务,MapReduce1任务的Map1任务用于实现“+1”。MapReduce2任务为用于在原始数值上加2的任务,MapReduce2任务的Map2任务用于实现“+2”。MapReduce3任务为用于在原始数值上加-1的任务,MapReduce3任务的Map3任务用于实现“-1”。MapReduce4任务为用于在原始数值上加0的任务,MapReduce4任务的Map4任务用于实现“+0”。MapReduce5任务为用于在原始数值上加1的任务,MapReduce5任务的Map5任务用于实现“+1”。
    若按照现有技术中的方案,则对于MapReduce1-MapReduce2–MapReduce3–MapReduce4–MapReduce5的串行任务的执行过程如图1b所示,其中,“任务一”表示MapReduce1、“任务二”表示MapReduce2、…、“任务五”表示MapReduce5;“第一映射任务”表示Map1任务,“第二映射任务”表示Map2任务,…,“第五映射任务”表示Map5任务?!盎蛉挝瘛北硎綬educe任务。
    现有技术中的执行过程包括:
    执行MapReduce1,读取原始数值得到输入值10,执行Map1任务得到输出结果11,并将输出结果11发送至用于执行Reduce任务的设备,以便对输出结果11执行Reduce任务。
    执行MapReduce2,从分布式系统上读取S1的输出结果11作为输入值,执行Map2任务得到输出结果13,并将输出结果13发送至用于执行Reduce任务的设备,以便对输出结果11执行Reduce任务。
    执行MapReduce3,从分布式系统上读取S2的输出结果13,执行Map3任务得到输出结果12,并将输出结果12发送至用于执行Reduce任务的设备,以便对输出结果11执行Reduce任务。
    执行MapReduce4,从分布式系统上读取S3的输出结果12,执行Map4任务得到输出结果12,并将输出结果12发送至用于执行Reduce任务的设备,以便对输出结果11执行Reduce任务。
    执行MapReduce5,从分布式系统上读取S4的输出结果12,执行Map5任务得到输出结果13,并将输出结果15发送至用于执行Reduce任务的设备,以便对输出结果11执行Reduce任务。
    而在本实施例中,计算设备确定了需要合并的串行排列的MapReduce任务后,可以将所有的MapReduce任务合并为一个MapReduce任务,比如:合并 MapReduce1任务、MapReduce2任务、MapReduce3任务、MapReduce4任务和MapReduce5任务后,得到第一目标MapReduce任务。第一目标MapReduce任务的Map任务为Map M。其中由Map1至5直接在计算设备的内存中顺序执行“+1+2-1+0+1”,得到Map M任务为“+3”。则执行第一目标MapReduce任务的输出结果Output M=10+3=13。
    或者,计算设备确定了需要合并的串行排列的MapReduce任务后,也可以将所有的MapReduce任务当中的一部分合并为一个MapReduce任务,比如:合并MapReduce1任务、MapReduce2任务、MapReduce3任务、MapReduce4任务得到第二目标MapReduce任务,第二目标MapReduce任务的Map任务为Map M’。其中由Map1至4进行直接在计算设备的内存中顺序执行“+1+2-1+0”,得到Map M任务为“+2”。
    103,执行目标MapReduce任务,并得到所述目标MapReduce任务的输出结果。
    本发明实施例提供的处理串行任务的数据处理方法,能够合并多个串行MapReduce任务,并执行合并得到的MapReduce任务。在合并得到的MapReduce任务中,只需执行一次Reduce任务。因此本发明通过合并执行MapReduce任务减少了执行串行MapReduce任务时所需Reduce任务的次数,因此节省了执行Reduce任务过程中从分布式系统中的各个节点设备的磁盘上读取输出结果所需占用的时间和网络带宽,从而减少处理大量数据所需的时间以及网络资源。
    具体的,本发明实施例可以包括如图2所示的方法:
    201,计算设备获取至少两个MapReduce任务。
    其中,至少两个MapReduce任务按照执行先后顺序串行排列;当两个MapReduce任务串行排列时,前一个MapReduce任务被执行后得到的输出值为后 一个MapReduce任务的输入值。当计算设备开始运行M/R(MapReduce框架)并开始处理MapReduce任务时,对于待处理的MapReduce任务,从中获取至少两个按照执行先后顺序串行排列MapReduce任务,例如:计算设备获取的是一连串用于实现计算过程的MapReduce任务,其中前一个MapReduce任务的处理结果可以是之后一个或多个的MapReduce任务的输入值。
    202,从所述至少两个MapReduce任务中,提取每一个MapReduce任务对应的Map任务。
    在本实施例中,可以在成串行关系的一连串的MapReduce任务中,选取一部分MapReduce任务进行合并,比如图4所示,其中,“任务一”表示MapReduce1任务、“任务二”表示MapReduce2任务、…、“任务五”表示MapReduce5任务??梢灾谎∪≌?个MapReduce任务中的3个(A部分)或是2个(B部分)所示的MapReduce任务。也可以选取全部5个MapReduce任务(C部分),即将所有的MapReduce任务都进行合并。
    203,合并所述至少两个MapReduce任务中每一个MapReduce任务对应的Map任务的代码,并得到合并后的Map任务的代码。
    其中,当所述至少两个MapReduce任务存在信息依赖关系时,所述至少两个MapReduce任务按照执行的先后顺序依次排列,并且前一个MapReduce任务对应的Map任务的代码的输出值作为与所述前一个MapReduce任务相邻的后一个MapReduce任务对应的Map任务的代码的输入值。
    204,利用所述合并后的Map任务的代码,得到所述目标MapReduce任务。
    例如:
    ①单个Map任务的代码信息为:


    ②合并上述代码可以得到合并后的Map任务的代码为:


    计算设备在获取了合并后的Map任务的代码信息后,可以利用合并后的Map任务的代码信息生成一个目标MapReduce任务,在目标MapReduce任务中,Map任务的代码信息即为合并后的Map任务的代码信息。
    205,执行所述合并后的Map任务,并将所述合并后的Map任务的执行结果发送至用于执行Reduce任务的设备。
    206,接收所述用于执行Reduce任务的设备发送的所述输出结果。
    其中,输出结果由所述用于执行Reduce任务的设备根据所述合并后的Map任务的执行结果得到。
    在本实施例中,203的具体实施方式,如图3所示,可以实现为:
    301,获取每一个MapReduce任务对应的Map任务的环境准备操作代码、逻辑操作代码和环境清理操作代码。
    例如:在上面实施例中所列举的①为一个MapReduce任务中的Map任务的代码信息,其中setup()为环境准备操作代码。map1()为逻辑操作代码。cleanup()为环境清理操作代码。
    计算设备可以一次执行302a、302b、302c,从而完成对于每一个Map任务的环境准备操作代码、逻辑操作代码和环境清理操作代码的编译。
    302a,编译所获取的每一个MapReduce任务对应的Map任务的环境准备操作代码;
    302b,编译所获取的每一个MapReduce任务对应的Map任务的逻辑操作代码;
    302c,编译所获取的每一个MapReduce任务对应的Map任务的环境清理操作代码。
    根据编译后的每一个所述所获取的Map任务的环境准备操作代码、逻辑操作代码和环境清理操作代码,将所述所获取的Map任务合并得到一个Map任务,并将合并得到的这一个Map任务作为所述合并后的Map任务。
    计算设备对于准备被合并的每一个MapReduce任务的Map任务中的环境准备操作代码、逻辑操作代码和环境清理操作代码进行编译,并将每一个MapReduce任务的Map任务经过编译后的环境准备操作代码、逻辑操作代码和环境清理操作代码合并,得到例如下面所示的合并后的Map任务的代码:

    从而实现对于多个Map任务的合并,并得到合并后的Map任务,再对应合并后的Map任务设置Reduce任务,从而得到目标MapReduce任务。
    本发明实施例提供了合并多个串行MapReduce任务的具体实施方式,通过对 MapReduce任务的Map任务进行合并,从而实现合并得到的MapReduce任务。在执行合并得到的MapReduce任务时,执行完合并后的Map任务后只需对应于合并后的Map任务的Reduce任务,从而减少了Reduce任务的执行次数。因此本发明通过合并执行MapReduce任务减少了执行串行MapReduce任务时所需Reduce任务的次数,因此节省了执行Reduce任务过程中从分布式系统中的各个节点设备的磁盘上读取输出结果所需占用的时间和网络带宽,从而减少处理大量数据所需的时间以及网络资源。
    在实际应用中,存在总数量较大的MapReduce任务的串行序列,比如100个成串行关系的MapReduce任务,其中的第2-10个MapReduce任务,以及第20-25个MapReduce任务,计算过程比较复杂且处理过程中需要读写的数据量很大,而其他的MapReduce任务则很简单,所占用的计算资源和所需读写的数据量很小,则计算设备可以合并第2-10个MapReduce任务,以及合并第20-25个MapReduce任务,从而由原来的100个成串行关系的MapReduce任务精简到87个MapReduce任务,其中2个是合并得到的MapReduce任务。这样既可以减少从分布式系统上读写大量数据,同时由于减少了所要合并的MapReduce任务的数量,从而缩短了计算设备合并MapReduce任务所需的时间,从而也可以提高总数量较大的MapReduce任务的串行序列的处理效率。
    在本发明实施例中还提供了一种处理串行任务的计算设备50,如图5所示,该计算设备50可以包括:至少一个处理器51,例如CPU,至少一个通信接口54??裳〉?,还可以包括者其他用户接口53,存储器55。总线52用于实现这些组件之间的连接通信??裳〉?,用户接口53,可以包括显示器,键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触感显示屏)。通信接口54,可以是一种网络接口,能够用于计算设备50与分布式存储系统之间的数据传输。 存储器55可能包含计算设备50上的高速RAM存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器55可选的可以包含至少一个位于远离前述处理器51的存储装置。
    在一些实施方式中,存储器55存储了如下的元素,可执行??榛蛘呤萁峁?,或者他们的子集,或者他们的扩展集:
    操作系统551,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
    应用程序552,包含各种应用程序,用于实现各种应用业务。应用程序552中包括但不限于:任务提取???1、合并???2、执行???3、分析单元621、合并单元622、目标任务生成单元623、执行单元631、发送单元632、接收单元633。
    应用程序552中各??榈木咛迨迪植渭?所示实施例中的相应???,在此不赘述
    处理器51,用于获取至少两个MapReduce任务,并合并所述至少两个MapReduce任务得到目标MapReduce任务。
    其中,所述至少两个MapReduce任务按照执行先后顺序串行排列,当两个MapReduce任务串行排列时,前一个MapReduce任务被执行后得到的输出值为后一个MapReduce任务的输入值。
    比如:MapReduce1-MapReduce2-…-MapReduce N为串行的任务,N为大于等于3的整数。MapReduce1任务包括执行Map1任务后输出结果Output1。MapReduce2任务包括执行Map2任务后输出结果Output2,并且需要将Output1作为执行Map2过程的输入参数?!?。MapReduce N任务包括执行Map N任务后输出结果Output N,并且需要将Output N-1作为执行Map N过程的输入参数。则处 理器51可以用于将Map1、Map2、…Map N进行合并,并生成一个新的Map任务,称之为目标Map任务,处理器51在执行目标Map任务的后的输出结果即为OutputN。执行目标Map任务并输出了Output N后,再将Output N通过通信接口54发送至用于执行Reduce任务的设备,这样就实现了计算设备50将MapReduce1、MapReduce2、…、MapReduce N进行合并得到目标MapReduce任务,而目标MapReduce任务即为目标Map任务+Reduce任务的组合。
    所述处理器51,还用于执行目标MapReduce任务,并得到所述目标MapReduce任务的输出结果,并将所述输出结果发送至所述通信接口。
    举例来说:
    MapReduce1-MapReduce2–MapReduce3–MapReduce4–MapReduce5为用于实现累加计算的串行任务。其中原始数值为10,MapReduce1任务为用于在原始数值上加1的任务,MapReduce1任务的Map1任务用于实现“+1”。MapReduce2任务为用于在原始数值上加2的任务,MapReduce2任务的Map2任务用于实现“+2”。MapReduce3任务为用于在原始数值上加-1的任务,MapReduce3任务的Map3任务用于实现“-1”。MapReduce4任务为用于在原始数值上加0的任务,MapReduce4任务的Map4任务用于实现“+0”。MapReduce5任务为用于在原始数值上加1的任务,MapReduce5任务的Map5任务用于实现“+1”。
    若按照现有技术中的方案,则对于MapReduce1-MapReduce2–MapReduce3–MapReduce4–MapReduce5的串行任务的执行步骤如图1b所示,包括:
    1、计算设备的处理器执行MapReduce1,读取原始数值得到输入值10,执行Map1任务得到输出结果11,并通过通信接口将输出结果11发送至用于执行Reduce任务的设备,以便对输出结果11执行Reduce任务。
    2、处理器执行MapReduce2,这就需要处理器通过通信接口从分布式系统上 读取S1的输出结果11作为输入值,执行Map2任务得到输出结果13,再通过通信接口将输出结果13发送至用于执行Reduce任务的设备,以便对输出结果11执行Reduce任务。
    3、处理器执行MapReduce3,处理器通过通信接口从分布式系统上读取S2的输出结果13,执行Map3任务得到输出结果12,再通过通信接口将输出结果12发送至用于执行Reduce任务的设备,以便对输出结果11执行Reduce任务。
    4、处理器执行MapReduce4,处理器通过通信接口从分布式系统上读取S3的输出结果12,执行Map4任务得到输出结果12,再通过通信接口将输出结果12发送至用于执行Reduce任务的设备,以便对输出结果11执行Reduce任务。
    5、处理器执行MapReduce5,处理器通过通信接口从分布式系统上读取S4的输出结果12,执行Map5任务得到输出结果13,再通过通信接口将输出结果15发送至用于执行Reduce任务的设备,以便对输出结果11执行Reduce任务。
    导致现有技术中计算设备的处理器需要通过通信接口从分布式系统上至少读写4次数据。而在本实施例中,处理器51在确定了需要合并的串行排列的MapReduce任务后,可以将所有的MapReduce任务合并为一个MapReduce任务,比如:合并MapReduce1任务、MapReduce2任务、MapReduce3任务、MapReduce4任务和MapReduce5任务后,得到第一目标MapReduce任务。第一目标MapReduce任务的Map任务为Map M。其中由Map1至5直接在计算设备50的内存中顺序执行“+1+2-1+0+1”,得到Map M任务为“+3”。则处理器51执行第一目标MapReduce任务的输出结果Output M=10+3=13。
    或者,处理器51在确定了需要合并的串行排列的MapReduce任务后,也可以将所有的MapReduce任务当中的一部分合并为一个MapReduce任务,比如:合并MapReduce1任务、MapReduce2任务、MapReduce3任务、MapReduce4任务得 到第二目标MapReduce任务,第二目标MapReduce任务的Map任务为Map M’。其中由Map1至4进行直接在计算设备50的内存中顺序执行“+1+2-1+0”,得到Map M任务为“+2”,则第二目标MapReduce任务可以实现为如图1a所示的形式,即实现为第二目标MapReduce-MapReduce5的这两个成串行关系的MapReduce任务。
    通信接口54,用于向所述外部存储设备发送所述输出结果。
    进一步的,所述处理器51,具体用于从所述至少两个MapReduce任务中,提取每一个MapReduce任务对应的Map任务;并根据所述至少两个MapReduce任务相互之间的信息依赖关系,合并所述至少两个MapReduce任务中每一个MapReduce任务对应的Map任务的代码,并得到合并后的Map任务的代码,其中,当所述至少两个MapReduce任务存在信息依赖关系时,所述至少两个MapReduce任务按照执行的先后顺序依次排列,并且前一个MapReduce任务对应的Map任务的代码的输出值作为与所述前一个MapReduce任务相邻的后一个MapReduce任务对应的Map任务的代码的输入值;并利用所述合并后的Map任务的代码,得到所述目标MapReduce任务。
    可选的,所述处理器51,具体用于执行所述合并后的Map任务,并将所述合并后的Map任务的执行结果发送至用于执行Reduce任务的设备;
    在实际应用中,所述处理器51,具体用于获取每一个MapReduce任务对应的Map任务的环境准备操作代码、逻辑操作代码和环境清理操作代码;并先编译所获取的每一个MapReduce任务对应的Map任务的环境准备操作代码;再编译所获取的每一个MapReduce任务对应的Map任务的逻辑操作代码;之后编译所获取的每一个MapReduce任务对应的Map任务的环境清理操作代码;最后得到所述合并后的Map任务的代码。
    本发明实施例提供的处理串行任务的计算设备,能够合并多个串行 MapReduce任务,并执行合并得到的MapReduce任务。在合并得到的MapReduce任务中,只需执行一次Reduce任务。因此本发明通过合并执行MapReduce任务减少了执行串行MapReduce任务时所需Reduce任务的次数,因此节省了执行Reduce任务过程中从分布式系统中的各个节点设备的磁盘上读取输出结果所需占用的时间和网络带宽,从而减少处理大量数据所需的时间以及网络资源。
    在本发明实施例中还提供了一种处理串行任务的数据处理装置60,如图6所示,可以包括:
    任务提取???1,用于获取至少两个MapReduce任务,所述至少两个MapReduce任务按照执行先后顺序串行排列所述至少两个MapReduce任务按照执行先后顺序串行排列;其中,当两个MapReduce任务串行排列时,前一个MapReduce任务被执行后得到的输出值为后一个MapReduce任务的输入值。
    合并???2,用于合并所述至少两个MapReduce任务得到目标MapReduce任务。
    执行???3,用于执行目标MapReduce任务,并得到所述目标MapReduce任务的输出结果。
    其中,如图7所示,所述合并???2可以包括:
    分析单元621,用于从所述至少两个MapReduce任务中,提取每一个MapReduce任务对应的Map任务。
    合并单元622,用于合并所述至少两个MapReduce任务中每一个MapReduce任务对应的Map任务的代码,并得到合并后的Map任务的代码,其中,当所述至少两个MapReduce任务存在信息依赖关系时,所述至少两个MapReduce任务按照执行的先后顺序依次排列,并且前一个MapReduce任务对应的Map任务的代码的输出值作为与所述前一个MapReduce任务相邻的后一个MapReduce任务对应的 Map任务的代码的输入值。
    目标任务生成单元623,用于利用所述合并后的Map任务的代码,得到所述目标MapReduce任务。
    其中,所述合并单元622,具体用于:获取每一个MapReduce任务对应的Map任务的环境准备操作代码、逻辑操作代码和环境清理操作代码;先编译所获取的每一个MapReduce任务对应的Map任务的环境准备操作代码;再编译所获取的每一个MapReduce任务对应的Map任务的逻辑操作代码;之后编译所获取的每一个MapReduce任务对应的Map任务的环境清理操作代码;最后得到所述合并后的Map任务的代码。
    可选的,所述执行???3包括:
    执行单元631,用于执行所述合并后的Map任务;
    发送单元632,用于将所述合并后的Map任务的执行结果发送至用于执行Reduce任务的设备;
    接收单元633,用于接收所述用于执行Reduce任务的设备发送的所述输出结果,所述输出结果由所述用于执行Reduce任务的设备根据所述合并后的Map任务的执行结果得到。
    本发明实施例提供的处理串行任务的数据处理装置,能够合并多个串行MapReduce任务,并执行合并得到的MapReduce任务。在合并得到的MapReduce任务中,只需执行一次Reduce任务。因此本发明通过合并执行MapReduce任务减少了执行串行MapReduce任务时所需Reduce任务的次数,因此节省了执行Reduce任务过程中从分布式系统中的各个节点设备的磁盘上读取输出结果所需占用的时间和网络带宽,从而减少处理大量数据所需的时间以及网络资源。
    本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相 似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
    本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
    以上所述,仅为本发明的具体实施方式,但本发明的?;し段Р⒉痪窒抻诖?,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的?;し段е?。因此,本发明的?;し段вΩ靡匀ɡ蟮谋;し段?。

    关于本文
    本文标题:一种处理串行任务的数据处理装置及方法.pdf
    链接地址://www.4mum.com.cn/p-6147630.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 福彩3d六码遗漏图 新疆时时中奖规律 天津时时遗漏最大 不倍投稳赚方案 彩票助赢计划软件安卓版 功夫时时彩计划软件官网 秒速时时是官方的吗 彩票店合作协议 浙江31选7走势图300期 江西时时2016出错了 重庆后三组六稳赚方法 下载①分快三破解软件 快乐时时是正规的吗 彩票挂机真的稳赚吗 微信买大小单双 pk10技巧论坛