• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 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
    • / 9
    • 下载费用:30 金币  

    重庆时时彩平台代理犯法吗: 一种建立层次化的映射/归约并行编程模型的方法.pdf

    关 键 词:
    一种 建立 层次 映射 并行 编程 模型 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201010125019.0

    申请日:

    2010.03.12

    公开号:

    CN102193831A

    公开日:

    2011.09.21

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 9/50申请日:20100312|||公开
    IPC分类号: G06F9/50 主分类号: G06F9/50
    申请人: 复旦大学
    发明人: 陈海波; 肖之慰; 臧斌宇
    地址: 200433 上海市邯郸路220号
    优先权:
    专利代理机构: 上海正旦专利代理有限公司 31200 代理人: 包兆宜
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201010125019.0

    授权公告号:

    102193831B||||||

    法律状态公告日:

    2014.05.21|||2011.12.28|||2011.09.21

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明属计算机软件应用领域,涉及建立层次化的映射/归约并行编程模型的方法,包括使用C语言实现单节点上的作业处理逻辑,实现任务并行和数据局部性优化;对应于一般的集群环境中的双层并行架构,采用层次化的映射/规约框架,在单个计算节点上应用映射/规约模型实现多核架构上的并行处理。本发明能在分布式计算系统中,使用映射/规约并行编程模型处理大规模数据的应用,实现了高效的作业执行器,充分挖掘了单个计算节点的处理能力,特别是多核架构的并行处理能力和缓存及内存中的数据局部性,为映射/规约并行编程模型的整体性能带来速度提升;同时保留了Hadoop在集群级别的任务调度、负载均衡以及错误容忍等特性。

    权利要求书

    1.一种建立层次化的映射/归约并行编程模型的方法,其特征在于,其包括:使用C语言实现单节点上的作业处理逻辑,实现任务并行和数据局部性优化;对应于一般的集群环境中的双层并行架构,采用层次化的映射/规约框架,在单个计算节点上应用映射/规约模型实现多核架构上的并行处理。2.按权利要求1所述的方法,其特征在于,所述的作业处理逻辑包括作业执行器全部,以及作业跟踪器相应部分的改进。3.按权利要求2所述的方法,其特征在于,所述的作业执行器按照映射/规约模型用C语言重新实现;改进的作业跟踪器在自身初始化的时候编译作业执行器所需的库程序,在执行作业的时候根据作业类型调用相应的作业执行器执行。4.按权利要求3所述的方法,其特征在于,所述的根据作业类型调用相应的作业执行器执行包括:对原有类型的作业调用原有作业执行器执行,对新类型的作业调用C语言实现的高效作业执行器执行。5.按权利要求1所述的方法,其特征在于,所述的任务并行优化包括映射作业的数据获取与数据处理之间的并行,以及规约作业的数据获取与数据处理之间的并行。6.按权利要求1所述的方法,其特征在于,所述的数据局部性优化包括高速缓存级别的数据局部性和内存级别的数据局部性。7.按权利要求1所述的方法,其特征在于,所述的集群环境中的双层并行架构包括多个计算节点间的集群并行架构和单个计算节点内的多核并行架构。

    说明书

    一种建立层次化的映射/归约并行编程模型的方法

    技术领域

    本发明属计算机软件应用领域,具体涉及一种建立层次化的映射/归约并行编程模型的方法,本发明能在分布式计算系统中,使用映射/规约并行编程模型来处理大规模数据的应用。

    背景技术

    随着用户业务需求的增长和网络技术的发展,海量数据的存储和计算对传统计算机系统提出了新的挑战。海量数据是指数据量极大(往往是万亿字节数量级以上)的数据集合,它比一般的通用数据库要大得多,远远超出单台计算机的存储和处理能力。为了解决海量数据的管理和存取问题,人们通过分布式系统将这样一个需要巨大的计算和存储能力的任务分成许多子任务,然后把这些子任务分配调度给多台互联的计算机进行并行处理,最后再把各个计算机上的输出综合起来得到最后结果。分布式系统的出现使对海量数据进行高效处理和存储成为可能,但是分布式系统上的程序编写与传统单机上的程序有很大的不同:软件程序设计者需要考虑系统不同节点间的同步,任务调度算法的有效性和公平性,负载均衡和错误恢复等问题。因此如何在分布式系统上进行高效有序的并行程序设计成为当今计算机学术界和业界共同关注的焦点。在这个背景下,并行编程模型便被提出,使得程序员不用关注于并行体系结构的特点,而把注意力集中到程序业务逻辑本身。

    并行编程模型是指并行体系结构(如分布式系统,多核体系结构)上的编程模型,它对于简化、规范并行编程有重大的意义。并行编程模型一直是并行计算研究领域中的重点内容,它和并行计算机体系结构紧密相关。映射/规约(MapReduce)并行编程模型是谷歌(Google)公司为了解决其在集群上进行百万亿字节以上海量数据分布式计算的问题而提出的并行编程模型,该模型在2004年的国际操作系统设计与实现大会上被首次提出,并在其后得到广泛的应用,且已有多种并行体系结构上的开放源代码实现。它将并行计算抽象成作用于一系列键值对的操作,具有编程接口简单、不要求程序员有并行编程知识、能充分发挥并行体系结构的计算能力等优点。映射/规约并行编程模型主要由“映射”和“规约”两个阶段构成,“映射”阶段根据输入数据产生一系列中间键值对,“规约”阶段则把具有相同键的所有中间键值对规约到一起(如图1所示)。Hadoop是第一个映射/规约模型在分布式系统上的开放源代码实现,它的代码使用Java语言编写。该项目由阿帕奇软件基金会(Apache?Software?Foundation)支持,目前已为大量的公司企业所部署和应用。

    一个典型的Hadoop应用部署通?;岵捎梅植际轿募低匙魑志貌?,在此之上运行映射/规约应用框架。Hadoop与分布式文件系统之间协作如下:一个映射/规约任务首先将来自文件系统的输入切分成可以并行处理的多份小数据,它们将提交给映射/规约框架作为各个映射任务的输入,经过映射阶段处理完后映射/规约框架会将其结果进行排序并作为输入传递给规约阶段处理,最后再将规约阶段的结果写回分布式文件系统。映射/规约框架负责任务调度,监控并重新执行失败的任务。

    一般来说,计算节点和存储节点是相同的,就是说映射/规约框架和分布式文件系统是运行在相同的节点集上的。这样的部署使得映射/规约框架能够根据数据的实际位置在各个节点上有效地调度任务,从而在整个集群上达到极高的网络带宽利用率。

    Hadoop的映射/规约框架将负责调度的逻辑抽象成任务跟踪器对象,作为中央的调度节点;而具体执行任务的那部分逻辑则被抽象为作业跟踪器对象,作为工作节点。整个框架由一个任务跟踪器和多个作业跟踪器组成,集群上每个节点都有一个作业跟踪器。任务跟踪器负责调度组成任务的各个子作业在作业跟踪器上执行,监控并重新执行失败的任务。

    作业跟踪器在任务跟踪器的控制下执行作业。每个作业跟踪器可以同时执行多个作业,并不断地向任务跟踪器汇报当前其负责的作业队列状况。作业跟踪器在准备执行一个作业的时候,会通过作业执行器运行一个新的Java虚拟机实例独立地执行作业。无论作业成功或失败,所有临时的数据都会随着虚拟机实例的退出而销毁。

    另一方面随着多核技术的发展,单个计算节点的处理能力日益提升,而体系结构则日趋复杂。其中多核上的并行计算问题和数据局部性问题是决定程序执行性能的关键因素。如果程序不能充分地同时利用多个计算核心资源进行计算,空闲的核心就会造成计算资源的浪费,使得程序只能使用多核架构的部分计算能力。数据局部性包括空间局部性(临近的数据会被相继访问)和时间局部性(相同数据会被多次访问),改善数据局部性可以有效地提高CPU高速缓存性能及输入输出子系统的性能,从而改善整体的运算性能。

    因此,为了最大限度地挖掘单个计算节点的运算能力,应用程序必须充分考虑上述两个问题,并根据应用程序特点进行相应的细粒度优化。但是现有的Hadoop作业执行器并不能很好地解决这两个问题。这是由于作业执行器是在Java虚拟机实例上进行作业处理,Java虚拟机为上层应用程序提供了统一的抽象的执行环境,使得应用程序无法通过底层操作系统去针对体系结构特点进行优化。

    发明内容

    本发明的目的是为克服现有技术的不足,针对现有的映射/规约框架无法充分利用单个计算节点上的处理能力这一问题,提供一种建立层次化的映射/归约并行编程模型的方法。

    现有的映射/规约框架如Hadoop主要注重于集群层次的并行计算,并没有考虑单个计算节点上的细粒度优化,忽视了普遍流行的多核架构的并行计算和数据局部性问题,从而无法最大程度挖掘计算节点的处理能力。

    为解决上述问题,本发明建立层次化的映射/归约并行编程模型,其包括:使用C语言实现单节点上的作业处理逻辑,以实现原有Java虚拟机之上很难乃至无法实现的任务并行和数据局部性优化;对应于一般的集群环境中的双层并行架构(多个计算节点间的集群并行架构和单个计算节点内的多核并行架构),采用层次化的映射/规约框架,在单个计算节点上也应用映射/规约模型以实现多核架构上的并行处理,如图2所示。

    所述的作业处理逻辑,包括作业执行器全部,以及作业跟踪器相应部分的改进。作业执行器按照映射/规约模型用C语言重新实现;改进的作业跟踪器需要在自身初始化的时候编译作业执行器所需的库程序,在执行作业的时候根据作业类型调用相应的作业执行器执行(对于原有类型的作业调用原有作业执行器执行,对于新类型的作业调用C语言实现的高效作业执行器执行)。

    所述的任务并行优化,包括映射作业的数据获取与数据处理之间的并行,以及规约作业的数据获取与数据处理之间的并行。对于映射作业,作业执行器将创建一个独立的数据加载线程从分布式文件系统读取输入数据,与此同时数据处理线程不断地处理已读取的数据,每次处理数据的粒度可由用户控制;对于规约作业,也采用类似的并行作业方式,所不同的是规约作业的数据获取线程以文件的粒度读取数据,当一个待处理文件被完整地读取之后,相应的处理线程才开始处理该输入文件。

    所述的数据局部性优化,包括高速缓存级别的数据局部性和内存级别的数据局部性。对于高速缓存级别的数据局部性,作业执行器将输入数据作进一步的切分,使得每次处理的数据单元能完整地加载到CPU上的一级高速缓存;对于内存级别的数据局部性,作业执行器将尽可能地重用内存中的数据与数据结构,如将原始文本读入内存再利用单词末尾的标点对单词进行划分,避免了多余的单词文本数据复制。

    本发明的有益效果是,实现了高效的作业执行器,充分挖掘了单个计算节点的处理能力,特别是多核架构的并行处理能力和缓存及内存中的数据局部性,为映射/规约并行编程模型的整体性能带来速度提升;同时保留了Hadoop在集群级别的任务调度、负载均衡以及错误容忍等特性。

    为了便于理解,以下将通过具体的附图和实施例对本发明的进行详细地描述。需要特别指出的是,具体实例和附图仅是为了说明,显然本领域的普通技术人员可以根据本文说明,在本发明的范围内对本发明做出各种各样的修正和改变,这些修正和改变也纳入本发明的范围内。

    附图说明

    图1,显示了主要由“映射”和“规约”两个阶段构成的映射/规约并行编程模型。

    图2为本发明建立的层次化的映射/归约并行编程模型。

    图3为本发明的系统架构示意图。

    图4为作业执行器的??楣钩墒疽馔?。

    图5为映射作业处理逻辑与映射/规约模型的对应关系。

    图6为规约作业处理逻辑与映射/规约模型的对应关系。

    具体实施方式

    实施例1

    如图3所示,本发明保留了Hadoop原有实现的大部分???,包括任务跟踪器和作业跟踪器,作业执行器则采用C/C++语言重新实现。在作业跟踪器调用作业执行器之前,系统的运作方式与Hadoop类似:用户通过任务客户端向任务跟踪器提交映射/规约任务,用户可通过配置文件制定任务类型;任务跟踪器将划分并分发子作业到各个作业跟踪器执行。作业跟踪器根据任务类型调用相应类型的作业执行器执行作业,这样使得Hadoop原有的应用程序可以使用原作业执行器执行,而新系统的应用程序可以采用高效的新作业执行器执行。

    图4展示了本发明实现的新作业执行器的??楣钩杉坝朐邢低称渌?榈墓叵?。作业执行器包含三个主要的??椋汉诵拇砟??,进程通讯??楹臀募低晨突Ф?。核心处理??槭褂糜成?规约框架实现了子作业的处理逻辑,还包括任务并行和数据局部性等优化。进程通讯??楦涸鹩胱饕蹈倨鹘型ㄑ?,它实现了作业跟踪器约定的远程过程调用协议客户端,并为作业执行器其他??樘峁┰冻坦痰饔媒涌?;该??榛拱薐ava对象和C对应数据结构之间的转换以及C语言中对应Java反射机制的实现。文件系统客户端负责所有访问分布式文件系统的操作,并为作业执行器其他??樘峁┓植际轿募低撤梦式涌?。

    图5详述了映射作业的处理逻辑与映射/规约模型的对应关系,如图所示,映射作业的前两阶段天然地与映射/规约模型有直接的对应,分别是映射和规约(也即合并)阶段。由于映射作业需要把输出结果按照规约阶段作业数进行划分,所以在映射/规约模型的最后的归并写回阶段,映射作业只需完成写回磁盘的功能而无需对划分的多个中间结果文件进行归并操作。

    图6详述了规约作业的处理逻辑与映射/规约模型的对应关系,如图所示,规约作业的复制阶段通过HTTP协议从其他节点读取映射阶段的中间结果数据,而排序阶段则对这些数据进行排序以方便规约阶段处理。这两阶段的功能对应于映射/规约模型的映射阶段,因此作业执行器在映射阶段完成数据读取、反序列化以及排序的功能。而规约作业最后的规约阶段包含了规约和写回过程,对应于映射/规约模型的规约和归并写回阶段,因此作业执行器在最后两个阶段联合完成规约阶段的功能。

    通常一些复杂的映射/规约应用程序可能涉及多个任务和复杂的任务前后执行逻辑,为使得应用程序能够配置和监控已提交的任务,本发明同时将任务客户端重新用C语言实现。用户只需提供一段C代码,指定任务类型和其他任务参数,调用新实现的任务客户端,即可使用本发明改进的高效作业执行器。

    关于本文
    本文标题:一种建立层次化的映射/归约并行编程模型的方法.pdf
    链接地址://www.4mum.com.cn/p-5866073.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
  • 双色球最近100期开奖 北京pk10赛车计划最准 入侵网赌棋牌app黑客 时时彩毒胆稳赚 新时时历史开奖记录 上海时时论坛 快三大小单双稳赚群 虚拟篮球投注技巧 组六全包稳赚的方案有哪些 最佳倍投方案 稳赚 秒速时时软件手机版 中国福彩app 玩北京pk10的技巧 极速赛车冠军3码计划 速pk10软件 6码倍投6期方