CN103885835A - 最优化映射减少框架中数据处理的装置和方法 - Google Patents

最优化映射减少框架中数据处理的装置和方法 Download PDF

Info

Publication number
CN103885835A
CN103885835A CN201310711298.2A CN201310711298A CN103885835A CN 103885835 A CN103885835 A CN 103885835A CN 201310711298 A CN201310711298 A CN 201310711298A CN 103885835 A CN103885835 A CN 103885835A
Authority
CN
China
Prior art keywords
task
input data
node
workman
data slot
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.)
Pending
Application number
CN201310711298.2A
Other languages
English (en)
Inventor
N.勒斯库阿内克
E.勒莫尔
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of CN103885835A publication Critical patent/CN103885835A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

由本发明的方法最优化、由主节点实现的用于大规模数据的映射减少框架。该方法包括在指向由工人节点执行的任务的输入数据的读取指针位置上的这些工人节点的数据的接收以及从这些任务接收工作,被窃取的该工作被应用于输入数据,该输入数据尚未被工作从其窃取的任务处理。

Description

最优化映射减少框架中数据处理的装置和方法
技术领域
当前发明涉及映射减少(MapReduce)框架中的数据处理。该映射减少模型在谷歌公司开发,作为使能大规模数据处理的方式。
背景技术
映射减少是用于处理大数据集合的编程模型,并且谷歌的该模型的实现的名字映射减少通常对计算机集群进行分布式计算。该模型受通常在功能编程中使用的“映射(map)”和“减少(reduce)”功能启发。映射减少包括“映射”步骤,其中主节点在每一个均处理特定的子任务的映射任务中建立问题的分支,并且分配这些映射任务给工人节点(worker node)。这个主任务还称作“安排(scheduling)”任务。对于此,主节点划分问题输入数据并且将每个输入数据部分分配到映射任务。工人节点处理子问题,并在映射任务完成时通知主节点。映射减少还包括“减少”步骤,其中主节点向一些工人节点分配“减少”操作,其收集全部子问题的答案并且将它们以某种形式组合以形成输出,即原始试图解决的问题的答案。
映射减少允许映射和减少操作的分布式处理。所提供的每一个映射操作都独立于其他映射操作,并且可以并行地进行映射。类似地,“减少器”的集合可以进行操作相。虽然此处理相比于更加顺序的算法可能显得不高效,但是映射减少可以应用于比商用服务器可以处理的数据集合明显更大的数据集合—大型服务器公司可以使用映射减少来仅在若干小时内分类千兆字节(petabyte)的数据;映射减少通常适宜于处理“大数据”。并行化也提供在操作期间从服务器或贮存的部分故障中恢复的一些可能性:如果一个映射器或减少器出现故障,则工作可以重安排—假定输入数据仍然可用。映射减少的流行的开源实现是Apache Hadoop。(来源:维基百科)。
映射减少依赖于任务的“静态”分割来易化主机的安排并且增加容错。任务的静态分割由主机节点“安排器”任务来处理。词组“静态”在上下文中意味着在执行之前将任务分割为同样大小的较小任务。作为程序/功能和输入数据分割任务的组合的任务由分割输入数据为部分并且创建在各个所分割数据部分上应用程序的若干任务。
Blumofe等在他们的论文,在FOCS1994(Annual IEEE Symposium onFoundations of Computer Science)上的“Scheduling Multithreaded Computationsby Work Stealing”中描述了处理器从其他处理器窃取工作的工作窃取的有益效果。此技术良好的适宜于处理异构任务。然而,它限于在相关任务之间窃取工作,例如,在线程之间的具有共享存储器的单一机器上执行的任务。技术不能应用于映射减少,因为映射减少方式有赖于如下假设:任务是独立的,而这允许了输入数据的静态分割以改进规模和容错。
为了处理“离群者(straggler)”(即,缓慢地计算并且降低了数据处理系统的性能的机器),映射减少包括公知为“推测执行”的机制,包括在任务的拷贝的同时执行中,期望任务的之一将比其他任务更快地执行。此改进允许了在使用异构资源的环境中的性能增益。不适宜于异构地处理任务,即一些任务可能要求比其他任务更多的计算能力。
美国Indiana University of Bloomington的Guo等人在他们的文章“Improving MapReduce Performance in Heterogenous Network Environmentsand Resource Utilisation”中描述了,在映射减少中,映射和减少任务被分配给由工人节点拥有的映射和减少“时隙(slot)”。每一个工人包括任务向其分配的用户可配置数量的映射和减少时隙。对每一个时隙保留潜在资源的部分。当全部时隙同时使用时,资源使用率是最优的。然而,千节点的谷歌计算簇(production cluster)的收集的使用率数据示出CPU利用率在大多数时候远不及最优。作者承认如同在Hadoop中应用的映射减少方式中的资源利用率在没有足够任务来填充全部任务时隙的时候是不高效的。每一个工人节点具有可以以每节点为基础由用户配置的映射和减少时隙。当不存在足够的任务来填充全部任务时隙时,浪费了保留的资源。为了改进映射减少性能,Guo等人提出了资源窃取并使能允许的任务窃取保留的“空闲”资源用于“推测执行”(即,相同任务(“复制”,或“竞争”任务)的并行执行)以处理执行装置的异构;对于一些任务T1到Tn的每一个,重执行任务(之前提及的“推测执行”)以使得任务的总数变得等于时隙的数量。重执行任务使用为“空闲”时隙保留的资源。
改进处理速度的这些现有技术效果通过上述静态分割始终受限。映射减少中的当前途径是调谐与此静态分割有关的参数以便于改进负载平衡并且最终改进数据处理的性能。然而,此策略要求技术人员的介入,因为它要求要处理输入数据的正确了解。必须处理输入在大小上太小的未被分割为块的输入数据,因为添加映射任务增加了对每一个分割任务要求的开销。开销的示例是:同步的时间,转移和启动任务、传输结果和合并全部结果的时间。
改进性能的再一策略是与Guo所讨论的“资源窃取”相对的、称为“工作窃取”的策略。Al-Obaidi等在他们的文章2012年7月3-5日的ICCCE2012的“A partial multi stealing scheduling model for divide and conquer problems”,中讨论了工作窃取。然而,Al-Obaidi等讨论的工作窃取目标在于多核处理器架构,并且讨论了通过任务线程的窃取来将其给予未使用处理器核心的工作窃取。此工作窃取策略设计用于多线程任务和多核处理器,并且不能导致非多线程任务或在单一核心节点上的更快执行。此外,该策略受未使用处理器核心的数量限制。最终,Al-Obaidi等类似于Blumofe等。全部这些不利使得这些策略对于映射减少模型中的应用不是最优的。
现有技术涉及任务执行的最优化,已经提出了任务的静态分割。这不是最优的,因为静态分割不考虑不同分割任务之间以及不同执行节点之间的异构性。将会有利的是提出基于动态适应任务和节点异构性两者的方法的映射减少。
因此,需要现有技术解决方案的进一步最优化。
发明内容
本发明旨在减轻现有技术的一些不便。
为此,本发明包括用于在映射减少框架中的处理数据的方法,所述方法由主节点执行,并且包括将输入数据分割为输入数据片段;向工人节点分配用于处理输入数据片段的任务,其中向每一个工人节点分配用于处理输入数据片段的任务;根据从执行任务的工人节点接收的数据确定,指向由任务处理的输入数据片段中的当前读取位置的读取指针是否尚未达到输入数据片段结尾之前预定阈值;并且将新任务分配给空闲的工人节点,新任务被归于由在尚未达到输入数据片段结尾之前预定阈值的所述任务尚未处理的输入数据片段的、称为分割部分的部分,该分割部分是位于在当前读取指针位置之后的输入数据片段的一部分。
根据本发明的变形实施例,所述方法的最后步骤从属于根据从任务接收的数据确定输入每个任务的数据处理速度以及数据处理速度低于权利要求1的最后步骤的执行的数据处理速度阈值的每一个任务,该数据处理速度从根据从工人节点接收的数据获得的后续读取指针确定。
根据本发明的变形实施例,本发明进一步包括向执行尚未达到输入数据片段结尾之前预定阈值的任务的工人节点传输消息的步骤,该消息包含了用于更新对由该消息向其传输的工人节点执行的任务的输入数据片段的信息。
根据本发明的变形实施例,所述方法进一步包括在输入数据流中插入End Of File标记的步骤,向任务提供该输入数据流用于将输入数据的处理限制在位于分割部分之前的输入数据片段的一部分。
根据本发明的变形实施例,所述方法进一步包括在主节点中更新安排表,所述安排表包括允许工人节点与分配给它的任务之间的关联并且定义分配给它的任务的输入数据片段部分开始和结束的信息。
根据本发明的变形实施例,所述方法进一步包括处理输入数据片段的非重叠部分的任务的推测执行。
本发明还应用于用于处理映射减少框架中的数据的主装置,该装置包括用于将输入数据分割为输入数据片段的部件;用于向工人节点分配用于处理输入数据片段的任务的部件,其中向每一个工人节点分配用于处理输入数据片段的任务;用于根据从执行任务的工人节点接收的数据确定,指向由任务处理的输入数据片段中的当前读取位置的读取指针是否尚未达到输入数据片段结尾之前预定阈值的部件;以及将新任务分配给空闲的工人节点的部件,新任务被归于由在尚未达到输入数据片段结尾之前预定阈值的所述任务尚未处理的输入数据片段的、称为分割部分的部分,该分割部分是位于在当前读取指针位置之后的输入数据片段的一部分。
根据根据本发明的装置的变形实施例,所述装置进一步包括用于根据从任务接收的数据确定输入每个任务的数据处理速度的部件,以及确定数据处理速度是否低于数据处理速度阈值的部件,该数据处理速度从根据从工人节点接收的数据获得的后续读取指针确定。
根据根据本发明的装置的变形实施例,所述装置进一步包括向执行尚未达到输入数据片段结尾之前预定阈值的任务的工人节点传输消息的部件,该消息包含了用于更新对由该消息向其传输的工人节点执行的任务的输入数据片段的信息。
根据根据本发明的装置的变形实施例,所述装置进一步包括在输入数据流中插入End Of File标记的部件,向任务提供该输入数据流用于将输入数据的处理限制在位于分割部分之前的输入数据片段的一部分。
根据根据本发明的装置的变形实施例,所述装置进一步包括用于在主节点中更新安排表的部件,所述安排表包括允许工人节点与分配给它的任务之间的关系并且定义分配给它的任务的输入数据片段部分开始和结束的信息。
根据根据本发明的装置的变形实施例,所述装置进一步包括用于处理输入数据片段的非重叠部分的任务的推测执行的部件。
附图说明
通过本发明的特定、非限制实施例的描述,本发明的更多优势将显现。将参考以下附图描述实施例:
图1是示出现有技术映射减少方法的原理的框图。
图2是用于根据映射减少方式的数据处理的现有技术大规模数据处理系统的框图。
图3是根据映射减少方法的数据处理的现有技术方法的流程图。
图4是图示由主节点完成的映射任务的图3的流程图的细节。
图5是表示处理输入数据的工人的框图。
图6是根据本发明的非限制性变型实施例的映射任务的流程图。
图7是图示根据本发明的非限制性实施例的输入数据文件的分割的框图。
图8是根据本发明的装置的非限制性示例实施例的框图。
图9是图示根据本发明的非限制性变型实施例的顺序图。
图10是根据非限制性示例实施例的本发明的方法的流程图。
为了促进理解,在可以指定对于示图共同的一致的元素的地方使用一致的附图编号。
具体实施方式
图1是示出现有技术映射减少方法的原理的框图(来源:维基百科)。
“主”节点101(经由箭头1000)获得输入数据(“问题数据”)100,并且在“映射”步骤1010中,将其划分为较小的子问题,它们被分发给“工人”节点102-105(箭头1001、1003、1005)。工人节点处理该较小问题(箭头1002、1004、1006)并且向主节点通知任务完成。在“减少”步骤1011,主节点将“减少”操作分配给一些工人节点,其收集全部子问题的答案并且将它们以某种形式组合以形成输出(“解决方案数据”)106(经由箭头1007)。
图2是根据映射减少方式的现有技术大规模数据处理系统的框图。与图1共同的元素已经对该图解释了,并且不在此再度解释。主处理201分割在文件F1到Fn(1000)中存储的问题数据100,该问题数据100分发给分配给了工人节点202-205的任务。主处理还负责向工人节点(类似工人节点210-211)分配减少任务。节点202-205产生中间数据值2000,其被收集并且写入中间文件a(206)、b(207)到n(209)。当向主节点通知中间结果被获得时,主节点分配减少任务给工人节点210-211。这些处理从中间文件206-209取回输入数据(2001),合并并且组合数据,并且存储(2002)产生的解决方案数据106。适于由映射减少处理的典型问题的示例是购物网站的客户的性别和平均年龄的统计。输入数据100则是购物网站的客户购买数据库。具有大量商业成功的网站,其客户数据库是庞大的—若干兆兆字节(terabyte)数据。数据存储在文件F1-Fn中。主进程以64M字节的片段分割每一个文件。借助工人节点的列表,主节点建立了安排表,其将输入数据的每一个片段归于一个任务和一个工人节点。根据我们的情形,要由工人节点执行的任务是两个:计算男性/女性买家的数量以及计算买家的平均年龄。每一个工人节点202到205存储其中间结果在中间文件206-209的一个中。例如,中间文件“a”206包括来自第一文件片段F1的女性客户的数量和客户的平均年龄,而中间文件“b”207包括第二文件片段F1的女性客户的数量和平均年龄,而中间文件“n”206包括通过第n文件片段“n”的女性客户的数量和客户平均年龄。当向主节点通知工人202-205已经完成它们的任务时,他分配减少任务给工人节点,诸如工人210-211.。这些工人执行减少任务,读取中间文件“a”到“n”的内容,产生存储在解决方案数据106中的两个结果输出,即女性客户的数量和平均客户年龄。
图3是主进程的流程图。
在初始化步骤301,进程需要的变量和参数被初始化。在步骤302,主节点将输入文件分割为通常几十兆字节的片段(例如,16或64M字节),这个是由用户经由可选参数可控制的。然后,在步骤303,主节点验证是否存在空闲工人节点。如果没有,则步骤循环。如果存在空闲(或“自由”)工人节点,则主节点在步骤305验证对于空闲工人节点是否仍存在要完成的映射任务;如果存在,则主节点指令该空闲工人节点开始这些映射任务(箭头3001和步骤304),并且随后经由箭头3000返回步骤303。如果不存在要完成的映射任务了,则在步骤306开始减少任务。如果这些完成了,则以步骤307完成进程。
以下表1给出了由主节点保持的现有技术主节点任务安排表的示例。
任务 文件 开始 结束 所分配的工人节点
M1 F1 0 16 W1,W5
M2 F1 0 16 W2
M1 F2 16 32 W3
M2 F2 16 32 W4,W6
表1:主节点映射任务安排表
映射任务M1对应于例如计算在客户数据库中客户的平均客户年龄。映射任务M1对应于例如计算女性客户的数量。工人节点W1要执行任务M1并且必须从文件F1获取输入数据片段,从字节0到16M字节。工人节点W2要执行来自相同文件、相同片段的任务M2。工人节点W3要执行作为具有来自文件F2的输入数据的任务M1,片段16到32M字节。W4要执行具有与工人节点W3相同的输入数据的任务M2。工人节点W5要执行由工人节点W1执行的任务M1的拷贝,即,用于推测执行。工人节点W6推测地执行与由W4执行的任务相同的任务。
图4是图3的步骤的304的现有技术实现的流程图。步骤304a代表映射任务开始的步骤。步骤304a的输入是来自步骤305的箭头3001。输出是朝向步骤303的输入的箭头3000。
在步骤3040,验证是否全部任务都已经开始。如果不是这样的情况,则在步骤3041中开始尚未开始的任务,并且步骤304a返回步骤303。如果全部任务已经开始了,则验证任务是否已经在步骤3045中开始了若干次(即,推测执行)。如果不是,则尚未被推测执行并且尚未完成的任务在空闲工人节点上同时开始,即这些任务在步骤3046中推测执行(推测执行的概念已经在之前讨论),由此增加了获得时间的概率;并且步骤304a继续到步骤303。如果在步骤3045中验证了全部任务已经推测执行了若干次,则步骤304a接着步骤303继续。
在工人节点上开始任务由主节点完成,该主节点指令工人节点抓取任务(即,要执行的功能/程序)以及其输入数据。例如,参考回表1,主节点指令工人节点W1执行映射任务M1,并且从文件F1的片段0到16M字节获取其输入数据;进程与其他映射任务一致。
图5是代表在工人节点上运行处理输入数据的任务的框图。尤其是,它代表分别运行在工人节点W1、W2、W3和W4上的任务T1(500)、T2(503)、T3(510)和T4(513)(每个工人节点上一个任务的分布不意味着是限制性,而仅是一个示例;工人节点可以根据其配置和性能执行多个任务)以及文件F1(502)和F2(512),其包括片段505、506,分别是515和516。在代表任务的框500、503、510和513中示出了一个进程,该进程从读取指针的放置的文件读取输入行并且执行向其传递所读取的输入行的程序/功能(例如,“avg_age”或“female_clients”)。箭头501、504、511和514代表读取指针。程序/功能“read_entry”读取输入数据文件直到片段结束;例如,T1从0直到片段在16M字节结束,而T2从16到32M字节。
图6是根据替代实施例的图3的步骤304的流程图,该替代实施例图示了本发明的特定的、非限制实施例。
与前述示图共同的要素已经对那些示图说明,并且其解释因而在此不重复。
如已经在背景技术部分中讨论的,现有技术涉及任务执行的优化,即,在任何中进行静态划分时。这不是最优的,因为其没有考虑到不同划分的任务之间和不同工人节点之间的异构,即,一个任何可能比另一个更复杂;一个工人节点可能比另一个更慢。
因而,步骤304b在可能时包括动态工作窃取的额外步骤。如果在步骤3040已经验证全部任务已经开始,则在步骤3042确定是否存在具有仍处于距输入数据片段结尾预定阈值之前的读取指针的任何任务,该输入数据片段可以进一步分割,即来自输入数据文件的输入数据可以被转移到另一工人节点,即“窃取”。预定量例如是用户可配置参数,即,例如设置为1M字节。在步骤3042中的此确定可以通过验证任务的读取指针而完成,或者工人节点规律地向主节点传送对于已经由工人节点执行的每一个任务的指针通知,以使之更新。根据之前的示例,在步骤3042,确定例如由工人节点W1执行的任务M1的输入数据读取指针501是否仍在15M字节的预定阈值处之前。如果不存在具有仍在距输入数据片段结尾预定阈值之前的读取指针的任务,步骤3042接着步骤3045继续。然而,如果存在这样的任务,执行步骤3044,其中,创建新(“拷贝”)任务并且将新任务分配给空闲工人节点并且开始,新任务获得其自身作为“原始”任务(即,新“拷贝”任务从其创建的任务)的输入数据片段的输入数据部分,该输入数据部分尚未由原始任务处理。然后,步骤3044接着步骤303继续(经由箭头3001)。在变形实施例中,决策性步骤3043插入到步骤3042和步骤3044之间,其中,确定窃取是否是可能的,即,在步骤3042中确定的工人节点由主节点外部地询问以获得其(多个)任务的(多个)读取指针值。可能地,这样的询问请求工人节点暂停其(多个)任务。此变形具有有益效果,即,避免了步骤3042的决策基于不再精确的读取指针值。
如果工作从一个任务窃取,则主节点更新其安排表。例如参考以下的表2.。对图1所示的安排表的修改用斜体,下滑线印记标记。
任务 文件 开始 结束 分配的任务节点
M1 F1 0 10 W1,W5
M1 F1 10 16 W7
M2 F1 0 16 W2
M1 F2 16 32 W3
M2 F2 16 32 W4W6
如可见,任务M1分割为任务M1和M1’。任务M1的输入数据文件的结束修改为设置到10M字节,并且创建新的“分割”任务M1,运行在具有在10M字节开始并且在16M字节结束的片段的输入文件1的工人节点W7。
图7是本发明的进一步变形实施例的流程图。与之前的示图共同的元素不再重复说明。
如果在步骤3040已经验证全部任务已经开始,则在步骤3047中确定是否存在或是复杂或在慢工人节点上执行的任务,即是否存在“离群者”任务。这可以由主节点基于由主节点从工人节点收集的统计数据而确定。基于这些统计数据,输入数据处理速度可以通过验证任务在时间期间读取的数据量来推断,同时他们顺序地处理每一个输入文件。输入数据处理速度可以从后续读取指针值获得并且是例如位速率,以K字节/秒表达。可以确定输入数据处理速度是否低于阈值。作为一个示例,这样的阈值可以根据平均处理速度加上预定容限而确定。基于此信息,如果输入文件处理速度基本上与大多数任务相同但是一些显著地慢于其他,则可能的是慢任务在其上执行的工人节点是慢的并且推测执行似乎在该情况下是最佳解决方案,由此接着步骤3045继续。如果在不同的节点上推测地执行相同任务并且对于推测执行的任务的输入数据处理速度仍然维持低于前述阈值,则任务可能比平均任务更为复杂并且工作窃取非常可能来帮助,由此接着步骤3042继续。如果在执行环境类似(例如,相同的硬件、相同的负载…)的时候全部任务具有输入数据处理速度中的巨大不同而运行,则工作窃取再次可能来帮助并且步骤3047接着步骤3042继续。如果输入数据处理速度基本对于全部任务相同,即,既没有比其他任务更复杂的任务也没有比其他任务更慢的任务,步骤3047接着步骤3045继续(即,经由标记着“n/a(“不可用”)”的步骤3047的出口)以在缺乏工作窃取将比推测执行更好地帮助的明确证据时应用推测执行的默认策略。目标是采用最适合当前情形的策略,即最可能加速整体任务处理。根据变型实施例,默认策略是应用工作窃取。默认策略可以由用户可配置参数设置来指定。
图8是根据本发明的主节点装置的非限制实施例的框图。装置包括CPU或中央处理单元或处理器810、时钟单元811、网络接口812、I/O接口813、非易失性存储器815和易失性存储器816。全部这些元素通过数据或通信总线814互连。装置可以经由连接8000连接到通信网络,并且经由连接8001连接到外部输入/输出装置(例如,键盘、屏幕、外部数据贮存)。CPU810能够执行诸如实现本发明的方法的指令之类的计算机可读指令。非易失性存储器815将计算机可读指令的拷贝存储在存储器区8151中。非易失性存储器815进一步存储诸如需要以长期方式保存的变量和参数之类的长期数据在存储器区8152中,以用来当装置从断电中重启时还原它到已知状态。易失性存储器816包括存储器区域8161,其包括在非易失性存储器815的存储器区8151中存储的计算机可读指令的拷贝,该指令在装置启动时复制到存储器区8161。易失性存储器816进一步包括存储器区8162,用于临时、非长期数据贮存,例如用于在存储器区8161中存储的计算机可读指令的执行期间使用的变量。时钟单元811提供由不同元素810和812-816使用的时钟信号用于定时和同步。
装置800包括用于将输入数据分割为输入数据片段的部件(CPU810);用于将用于处理输入数据片段的任务分配给工人节点的部件(CPU810),其中向每一个工人节点分配用于处理输入数据片段的任务;用于根据从执行任务的工人节点接收的数据确定指向由任务处理的输入数据片段中的当前读取位置的读取指针尚未达到输入数据片段结尾前预定阈值的部件(CPU810);以及用于将新任务分配给空闲工人节点的部件(CPU810),新任务被归于由在尚未达到输入数据片段结尾之前预定阈值的所述任务尚未处理的输入数据片段的、称为分割部分的部分,该分割部分是位于当前读取指针位置之后的输入数据片段的一部分。
根据装置的变型实现方式,装置800进一步包括用于根据从任务接收的数据确定每任务的输入数据处理速度的部件(CPU810),以及确定数据处理速度是否低于数据处理速度阈值的部件(CPU810),该数据处理速度根据从工人节点接收的数据获得的后续读取指针确定。
根据装置的变型实现方式,装置800进一步包括用于向执行尚未达到输入数据片段结尾前预定阈值的任务的工人节点传输消息的部件(网络接口812),该消息包含用于对由工人节点执行的任务更新输入数据片段结尾的信息,向该工人节点传输该消息。
根据装置的变型实现方式,装置800进一步包括在输入数据流中插入End Of File标记的部件(CPU810),该输入数据流向任务提供,用于将输入数据的处理限制在位于分割部分之前的输入数据片段的一部分。
根据装置的变型实现方式,装置800进一步包括用于在主节点中更新安排表的部件(CPU810),该安排表包括允许工人节点与分配给它的任务之间的关联并且定义分配给它的任务的输入数据片段部分开始和结束的信息。
根据装置的变型实现方式,装置800进一步包括用于处理输入数据片段的非重叠部分的任务的推测执行的部件(CPU810)。
图9是图示根据本发明的方法的非限制变型实施例的顺序图。垂直线900、901、902和903分别代表主节点、工人节点W1、工人节点W3和工人节点W7。箭头910到915代表在节点之间交换的消息。T0-T3代表时间上的不同时刻。在T0,主节点的映射任务安排表如在表1中表示。在T0,由工人节点W1901和W3902执行的任务的读取指针通过向这些节点发送消息910-911而取回。这样的消息例如包括传输任务的输入数据读取指针的位置的请求。根据变型实施例,请求暂停映射任务的执行,执行该映射任务以使得主节点确保读取指针将不演变,因为它决定是否应当例如在图6描绘的步骤3042-3044期间或在步骤3042-3044期间并包括图7描绘的步骤3047中创建新任务。在T1,从运行在W1(箭头912)上的任务M1并从运行在W3(箭头913)上的任务M1接收数据,从该数据主节点可以确定运行在这些工人节点上的这些任务的读取指针,该读取指针指向作为这些任务的输入数据的各个输入数据片段中的位置。主节点确定该读取指针是否是各个输入数据片段结尾前的预定阈值(例如,1M字节)。根据所描绘的情形以及与表1的连贯,这是由W1执行的任务M1的情况,并且主节点更新映射任务安排表中的条目,得到表2(术语“更新”包括新条目的创建以及修改现有条目)。在T2,主节点向W1传输消息914,指示映射任务M1恢复并且向W1通知任务M1的输入数据片段结尾更新了(之前16M字节,现在更新到10M字节)。在T3,主节点向自由(或“空闲”)W7(903)传输消息(箭头915),指示新任务M1’归于它,向它通知其输入数据是文件F1,片段10到16M字节,即运行在W1上的任务M1尚未处理的输入数据。在图6描绘的步骤3042-3044期间或在步骤3042-3044期间并包括图7描绘的步骤3047可以重复直到达到预定阈值,即,关于输入数据的不同部分运行的新任务可以创建;例如,如果工人节点7的读取指针仍然进展缓慢并且因此任务M1’的输入文件数据处理速度低于阈值;因此,可以创建要在自由工人节点上执行的新任务M1’’,该工人节点具有分配给W7并且该W7尚未处理的片段的部分作为输入数据。
根据变型实施例,保持工人节点不改变,该工人节点是用于新映射任务的创建的候选,因为其输入数据处理速度低于其他任务的处理速度(离群者任务),但是创建新任务从而每一个新任务处理输入数据的部分,该输入数据的部分由保持不变的任务处理。借助以下的表3图示示例:
任务 文件 开始 结束 分配的工人节点
M1 F1 0 16 W2
M1’ F1 0 8 W1
M1” F1 8 16 W3
表3:保持不改变而创建竞争任务的离群者
例如考虑任务M1是离群者任务,M1保持不变,但是创建两个额外拷贝或(“竞争”)任务,M1’和M1’’,每一个处理由M1处理的输入的一部分。在其他任务之前完成的任务(拷贝或原始)取决于他们处理的输入数据取消其他任务的执行,由此避免资源的浪费。例如,如果W2首先完成,W1和W3取消。如果W3首先完成,W2取消。因此,如果完成任务,并且具有与所完成任务重叠的输入数据的相同任务存(即,“重叠”任务)在(意味着它们执行了相同的程序/功能),则取消重叠任务。此策略因此是工作窃取和推测执行的组合,并且组合了两者的有益效果,即,处理输入数据片段的非重叠部分的任务的推测执行。存在多个理由来保持正在执行的任务不变,而同时使用自由资源期望任务输入数据处理可以加速。原因之一在于尽管任务的输入数据处理速度在给定时刻很慢,但是其输入数据处理速度在过去是足够的,并且存在良好的理由来期望输入数据处理速度将改进。另一理由是例如工人节点不在特定延迟内回复主节点的请求以传输正在执行的任务的输入数据读取指针位置。再一原因是任务认为是决定性的并且必须中断。再一理由是任务M1在W2和W1上推测地执行;并当已经进行窃取时,仅向W1通知片段的新结尾,因此保持W2与W3重叠地不变。
图10是根据非限制示例实施例的本发明的方法的逻辑图。
在第一步骤10000中,初始化用于该方法的变量和参数。在步骤10001中,输入数据分为输入数据片段。在步骤10002中,用于处理输入数据片段的任务分配给工人节点,其中,向每一个工人节点分配用于处理输入数据片段的任务。在步骤10003,根据从执行任务的工人节点(901、902、903)接收的数据确定,指向由任务处理的输入数据片段中的当前读取位置的读取指针是否尚未达到输入数据片段结尾前预定阈值;并且在步骤10004中,将新任务分配给自由工人节点,新任务被归于由在尚未达到输入数据片段结尾之前预定阈值的所述任务尚未处理的输入数据片段的、称为分割部分的部分,该分割部分是位于当前读取指针位置之后的输入数据片段的一部分。该方法循环回步骤10003以找到更多任务来分割或且自由工人节点变得可用。
本发明的实现不限于示出的实施例。读者将明白图8是实现本发明的主装置(或主“节点”)的非限制示例实施例。可以注意到,实现本发明的装置可以包括比所描述的更多或更少的元素,诸如例如实现多个功能的较少元件,或实现更多基础功能的元件。
类似地,读者将明白本方法或本发明的实现方式不限于示图中所示的实现,并且方法的步骤可以以不同顺序执行,或并行执行以例如获得处理时间。
所讨论的变量可以分开使用,或在它们之间组合一提供本发明的特别有利的变型实施例。
尽管一些所描述实施例讨论了硬件元素的使用,但是呈现为由硬件实现的一些功能可以反而以软件实现以减少实现本发明的装置的生产成本。
替代地,本发明使用硬件和软件组件的混合来实现,其中,专用硬件组件提供了软件替代执行的功能。根据特定实施例,以硬件,例如专用组件(例如,ASIC、FPGA或VLSI)(分别是《专用集成电路》、《现场可编程门阵列》和《超大规模集成电路》)或集成在装置中的不同的电子组件或以硬件和软件的混合的形式整体实现本发明。

Claims (12)

1.一种用于处理映射减少框架中的数据的方法,其特征在于所述方法由主装置(800,900)执行,并且在于所述方法包括:
将输入数据分割(10001)为输入数据片段;
向工人节点分配(10002)用于处理所述输入数据片段的任务,其中向每一个工人节点分配用于处理输入数据片段的任务;
根据从执行所述任务的工人节点(901,902,903)接收的数据确定(10003)指向由任务处理的输入数据片段中的当前读取位置的读取指针是否尚未达到输入数据片段结尾之前的预定阈值;并且
将新任务分配(10004)给空闲的工人节点,新任务被归于由在尚未达到输入数据片段结尾之前预定阈值的所述任务尚未处理的输入数据片段的、称为分割部分的部分,所述分割部分是位于所述当前读取指针位置之后的所述输入数据片段的一部分。
2.根据权利要求1所述的方法,其中权利要求1的方法的最后步骤从属于根据从所述任务接收的所述数据确定(3047)每个任务的输入数据处理速度的步骤,并且对于数据处理速度低于数据处理速度阈值的每一个任务执行权利要求1的最后步骤,所述数据处理速度根据从工人节点接收的数据获得的后续读取指针确定。
3.根据权利要求1或2所述的方法,包括向执行在尚未达到输入数据片段结尾之前预定阈值的任务的工人节点传输消息的步骤,该消息包含了用于更新由向其传输该消息的工人节点执行的任务的输入数据片段结尾的信息。
4.根据权利要求1或2所述的方法,包括在向任务提供的输入数据流中插入End Of File标记,用于将输入数据的处理限制在位于所述分割部分之前的输入数据片段的部分。
5.根据权利要求1到2的任一所述的方法,包括在所述主节点中更新安排表,所述安排表包括允许工人节点与分配给它的任务之间的关联并且定义分配给它的任务的输入数据片段部分开始和结束的信息。
6.根据权利要求1到2的任一所述的方法,其中所述方法包括处理输入数据片段的非重叠部分的任务的推测执行。
7.一种于用于处理映射减少框架中的数据的主装置,其特征在于所述主装置包括:
用于将输入数据分割为输入数据片段的部件;
用于向工人节点分配用于处理输入数据片段的任务的部件,其中向每一个工人节点分配用于处理输入数据片段的任务;
用于根据从执行任务的工人节点接收的数据确定,指向由任务处理的输入数据片段中的当前读取位置的读取指针是否尚未达到输入数据片段结尾之前预定阈值的部件;以及
将新任务分配给空闲的工人节点的部件,新任务归于由尚未达到输入数据片段结尾之前预定阈值的任务尚未处理的输入数据片段的、称为分割部分的部分,所述分割部分是位于在当前读取指针位置之后的输入数据片段的一部分。
8.根据权利要求7所述的主装置,其中所述主装置进一步包括用于根据从任务接收的数据确定每个任务的数据输入处理速度的部件,以及确定数据处理速度是否低于数据处理速度阈值的部件,所述数据处理速度根据从工人节点接收的数据获得的后续读取指针确定。
9.根据权利要求7或8所述的主装置,包括向执行尚未达到输入数据片段结尾之前预定阈值的任务的工人节点传输消息的部件,该消息包含了用于更新由向其传输该消息的工人节点执行的任务的输入数据片段结尾的信息。
10.根据权利要求7或8所述的主装置,包括在向任务提供的输入数据流中插入End Of File标记的部件,用于将输入数据的处理限制在位于分割部分之前的输入数据片段的部分。
11.根据权利要求7到8的任一所述的主装置,包括用于在所述主节点中更新安排表的部件,所述安排表包括允许工人节点与分配给它的任务之间的关联并且定义分配给它的任务的输入数据片段部分开始和结束的信息。
12.根据权利要求7到8的任一所述的主装置,其中所述主装置包括用于处理输入数据片段的非重叠部分的任务的推测执行的部件。
CN201310711298.2A 2012-12-20 2013-12-20 最优化映射减少框架中数据处理的装置和方法 Pending CN103885835A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12306644.1 2012-12-20
EP12306644.1A EP2746941A1 (en) 2012-12-20 2012-12-20 Device and method for optimization of data processing in a MapReduce framework

Publications (1)

Publication Number Publication Date
CN103885835A true CN103885835A (zh) 2014-06-25

Family

ID=47598646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310711298.2A Pending CN103885835A (zh) 2012-12-20 2013-12-20 最优化映射减少框架中数据处理的装置和方法

Country Status (5)

Country Link
US (1) US20140181831A1 (zh)
EP (2) EP2746941A1 (zh)
JP (1) JP2014123365A (zh)
KR (1) KR20140080434A (zh)
CN (1) CN103885835A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632890A (zh) * 2017-08-10 2018-01-26 北京中科睿芯科技有限公司 一种数据流体系结构中动态节点分配方法和系统

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101480867B1 (ko) * 2013-05-31 2015-01-09 삼성에스디에스 주식회사 맵리듀스 연산 가속 시스템 및 방법
US10491663B1 (en) * 2013-10-28 2019-11-26 Amazon Technologies, Inc. Heterogeneous computations on homogeneous input data
US9983901B2 (en) 2014-07-09 2018-05-29 Google Llc Dynamic shard allocation adjustment
JP6519111B2 (ja) * 2014-07-18 2019-05-29 富士通株式会社 データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
US10133602B2 (en) * 2015-02-19 2018-11-20 Oracle International Corporation Adaptive contention-aware thread placement for parallel runtime systems
US9832137B1 (en) * 2015-03-23 2017-11-28 VCE IP Holding Company LLC Provisioning system and method for a distributed computing environment using a map reduce process
US9684512B2 (en) * 2015-03-30 2017-06-20 International Business Machines Corporation Adaptive Map-Reduce pipeline with dynamic thread allocations
JP2016206757A (ja) * 2015-04-16 2016-12-08 富士通株式会社 分散処理プログラム、分散処理方法および情報処理装置
EP3328019B1 (en) 2015-07-21 2019-11-27 LG Electronics Inc. Broadcasting signal transmitting apparatus, broadcasting signal receiving apparatus, broadcasting signal transmitting method, and broadcasting signal receiving method
CN107402952A (zh) * 2016-05-20 2017-11-28 伟萨科技有限公司 大数据处理加速器及大数据处理系统
US10275287B2 (en) 2016-06-07 2019-04-30 Oracle International Corporation Concurrent distributed graph processing system with self-balance
US10545815B2 (en) 2016-08-03 2020-01-28 Futurewei Technologies, Inc. System and method for data redistribution in a database
KR102145795B1 (ko) * 2016-09-07 2020-08-19 한국전자통신연구원 복수의 워커 노드가 분산된 환경에서 데이터 스트림을 분석하고 처리하는 방법 및 장치, 그리고 태스크를 관리하는 방법 및 장치
US10318355B2 (en) 2017-01-24 2019-06-11 Oracle International Corporation Distributed graph processing system featuring interactive remote control mechanism including task cancellation
US10534657B2 (en) 2017-05-30 2020-01-14 Oracle International Corporation Distributed graph processing system that adopts a faster data loading technique that requires low degree of communication
JP6778161B2 (ja) * 2017-08-10 2020-10-28 日本電信電話株式会社 分散同期処理システム、分散同期処理方法および分散同期処理プログラム
EP3701374A1 (en) * 2017-11-03 2020-09-02 Huawei Technologies Co., Ltd. A system and method for high-performance general-purpose parallel computing with fault tolerance and tail tolerance
US10776148B1 (en) * 2018-02-06 2020-09-15 Parallels International Gmbh System and method for utilizing computational power of a server farm
US10990595B2 (en) 2018-05-18 2021-04-27 Oracle International Corporation Fast distributed graph query engine
KR102195886B1 (ko) * 2018-11-28 2020-12-29 서울대학교산학협력단 분산 처리 시스템 및 이의 동작 방법
CN110928656B (zh) * 2019-11-18 2023-02-28 浙江大搜车软件技术有限公司 一种业务处理方法、装置、计算机设备和存储介质
US11461130B2 (en) 2020-05-26 2022-10-04 Oracle International Corporation Methodology for fast and seamless task cancelation and error handling in distributed processing of large graph data
US11645200B2 (en) * 2020-11-24 2023-05-09 International Business Machines Corporation Reducing load balancing work stealing
CN113722071A (zh) * 2021-09-10 2021-11-30 拉卡拉支付股份有限公司 数据处理方法、装置、电子设备、存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070189617A1 (en) * 2006-02-15 2007-08-16 Ryuji Yamamoto Information processing apparatus enabling an efficient parallel processing
TW200841239A (en) * 2007-03-01 2008-10-16 Microsoft Corp Executing tasks through multiple processors consistently with dynamic assignments
US7599456B1 (en) * 2004-12-13 2009-10-06 Marvell International Ltd. Input/output data rate synchronization using first in first out data buffers
CN102622272A (zh) * 2012-01-18 2012-08-01 北京华迪宏图信息技术有限公司 基于集群和并行技术的海量卫星数据处理系统及处理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148365A (en) * 1998-06-29 2000-11-14 Vlsi Technology, Inc. Dual pointer circular queue
TWI228250B (en) * 2002-07-18 2005-02-21 Mediatek Inc Method for defect management of optical disk

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7599456B1 (en) * 2004-12-13 2009-10-06 Marvell International Ltd. Input/output data rate synchronization using first in first out data buffers
US20070189617A1 (en) * 2006-02-15 2007-08-16 Ryuji Yamamoto Information processing apparatus enabling an efficient parallel processing
TW200841239A (en) * 2007-03-01 2008-10-16 Microsoft Corp Executing tasks through multiple processors consistently with dynamic assignments
CN102622272A (zh) * 2012-01-18 2012-08-01 北京华迪宏图信息技术有限公司 基于集群和并行技术的海量卫星数据处理系统及处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHENG-WEI HUANG ETAL.: "Improving Speculative Execution Performance with Coworker for Cloud Computing", 《2011 IEEE 17TH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632890A (zh) * 2017-08-10 2018-01-26 北京中科睿芯科技有限公司 一种数据流体系结构中动态节点分配方法和系统

Also Published As

Publication number Publication date
KR20140080434A (ko) 2014-06-30
EP2746941A1 (en) 2014-06-25
EP2746948A1 (en) 2014-06-25
US20140181831A1 (en) 2014-06-26
JP2014123365A (ja) 2014-07-03

Similar Documents

Publication Publication Date Title
CN103885835A (zh) 最优化映射减少框架中数据处理的装置和方法
CN110119311B (zh) 一种基于fpga的分布式流计算系统加速方法
US10031775B2 (en) Backfill scheduling for embarrassingly parallel jobs
CN108667867B (zh) 数据存储方法及装置
CN107038069B (zh) Hadoop平台下动态标签匹配DLMS调度方法
US10042886B2 (en) Distributed resource-aware task scheduling with replicated data placement in parallel database clusters
US8752059B2 (en) Computer data processing capacity planning using dependency relationships from a configuration management database
CN115248728A (zh) 面向智能计算的分布式训练任务调度方法、系统和装置
EP3226133A1 (en) Task scheduling and resource provisioning system and method
CN109117252B (zh) 基于容器的任务处理的方法、系统及容器集群管理系统
CN111861412B (zh) 面向完成时间优化的科学工作流调度方法及系统
CN104035817A (zh) 大规模集成电路物理实现的分布式并行计算方法及其系统
CN107291536B (zh) 一种云计算环境下应用任务流调度方法
WO2020215752A1 (zh) 图计算方法及装置
CN103561061A (zh) 一种弹性的云数据挖掘平台部署方法
CN106874067B (zh) 基于轻量级虚拟机的并行计算方法、装置及系统
CN105765555A (zh) 分布式系统中的严格排队
CN107204998B (zh) 处理数据的方法和装置
CN105740085A (zh) 容错处理方法及装置
CN109840141A (zh) 基于云监控的线程控制方法、装置、电子设备及存储介质
Rościszewski et al. KernelHive: a new workflow‐based framework for multilevel high performance computing using clusters and workstations with CPUs and GPUs
CN115202876A (zh) 一种基于etl服务器的任务处理方法、系统和电子设备
CN115964182B (zh) 资源的调度方法和系统
Tiwary et al. Efficient implementation of apriori algorithm on HDFS using GPU
CN115858667A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140625

WD01 Invention patent application deemed withdrawn after publication