CN110109747B - 基于Apache Spark的数据交换方法及系统、服务器 - Google Patents
基于Apache Spark的数据交换方法及系统、服务器 Download PDFInfo
- Publication number
- CN110109747B CN110109747B CN201910424935.5A CN201910424935A CN110109747B CN 110109747 B CN110109747 B CN 110109747B CN 201910424935 A CN201910424935 A CN 201910424935A CN 110109747 B CN110109747 B CN 110109747B
- Authority
- CN
- China
- Prior art keywords
- data exchange
- sub
- job
- stage
- continuous
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种基于Apache Spark的数据交换方法,包括:在连续处理计算模式下,有向无环图调度器将批量作业的多个阶段子作业一次性递归提交;当追踪服务端判断出当前的计算模型为连续处理计算模式时,发送启动注册指令至追踪客户端;追踪客户端根据注册指令启动与第一个阶段子作业对应的注册机制;连续数据交换RDD执行与第一个阶段子作业对应的连续数据交换映射任务;追踪客户端根据预先生成的数据交换编号启动与下一个阶段子作业对应的注册机制;连续数据交换RDD执行与下一个阶段子作业对应的连续数据交换映射任务。本公开涉及云计算领域,还提供了一种基于Apache Spark的数据交换系统、服务器及计算机可读介质。
Description
技术领域
本公开涉及计算机分布式计算框架领域和云计算领域,具体地,涉及基于ApacheSpark的数据交换方法及系统、服务器及计算机可读介质。
背景技术
目前,一方面,Apache Spark具有Continuous Processing(连续处理)计算模式,但在该Continuous Processing计算模式下不支持Shuffle(数据交换)操作,当用户在Continuous Processing计算模式下提出相同作业实时化需求时,无法复用批量作业相同的代码实现低延迟实时计算并满足用户需求。
另一方面,低延迟的流式Shuffle目前普遍采用如下两种方案实现:(1)使用专用的流式系统实现,其中,流式算子中通过记录作业逻辑有向无环图中下游节点的方式将数据经RPC方式发送。但该方案无法和现存的批量作业完全复用代码,相同逻辑需要重新做开发和调试,进而增加了开发成本。(2)使用小批量计算系统实现,比如使用Apache Spark中的Structure Streaming模块实现,但该方案将单条数据退避为按照时间切分的一个个小批量作业进行执行,无法达到亚秒到秒级别的计算时延。
综上,如何在Apache Spark的Continuous Processing计算模式下支持低延迟Shuffle操作成为亟待解决的问题。
应该注意,上面对技术背景的介绍只是为了方便对本公开的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本公开的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
发明内容
本公开实施例提出了基于Apache Spark的数据交换方法及系统、服务器及计算机可读介质。
第一方面,本公开实施例提供了一种基于Apache Spark的数据交换方法,包括:
在连续处理计算模式下,有向无环图调度器将批量作业的多个阶段子作业一次性递归提交;
当追踪服务端判断出当前的计算模型为所述连续处理计算模式时,发送启动注册指令至追踪客户端;
追踪客户端根据所述注册指令启动与第一个阶段子作业对应的注册机制;
连续数据交换RDD执行与第一个阶段子作业对应的连续数据交换映射任务;
追踪客户端根据预先生成的数据交换编号启动与下一个阶段子作业对应的注册机制,所述当前阶段子作业与下一个阶段子作业间具有依赖关系,所述依赖关系为当上一阶段子作业的数据处理未完成时下一阶段子作业的数据处理状态为等待状态;
连续数据交换RDD执行与下一个阶段子作业对应的连续数据交换映射任务。
在一些实施例中,在有向无环图调度器将批量作业的多个阶段子作业一次性递归提交的步骤之后还包括:
连续数据交换RDD根据时期编号、有向无环图中的节点总数量及每个阶段子作业在所述有向无环图中的位置编号生成每个所述阶段子作业的数据交换编号。
在一些实施例中,通过公式ShuffleID=epochID*totalShuffleNum+baseShuffleID生成数据交换编号,ShuffleID表示阶段子作业的数据交换编号,epochID表示当前时期编号,totalShuffleNum表示当前有向无环图所有阶段子作业的数量,baseShuffleID表示阶段子作业在当前有向无环图中的位置编号。
在一些实施例中,执行与阶段子作业对应的连续数据交换映射任务的步骤包括:
从数据交换控制端中获取与阶段子作业对应的写入端并调用与阶段子作业对应的写入接口;
注册与所述阶段子作业对应的输出信息。
在一些实施例中,在连续数据交换RDD执行与下一个阶段子作业对应的连续数据交换映射任务的步骤之后还包括:
连续数据交换RDD判断当前阶段子作业是否为最后一个阶段子作业;
若否,则继续执行所述追踪客户端启动与下一个阶段子作业对应的注册机制的步骤;若是,则流程结束。
第二方面,本公开实施例提供了一种基于Apache Spark的数据交换系统,包括:
有向无环图调度器,用于在连续处理计算模式下,将批量作业的多个阶段子作业一次性递归提交;
追踪服务端,用于当判断出当前的计算模型为所述连续处理计算模式时,发送启动注册指令至追踪客户端;
追踪客户端,用于根据所述注册指令启动与第一个阶段子作业对应的注册机制,根据预先生成的数据交换编号启动与下一个阶段子作业对应的注册机制,所述当前阶段子作业与下一个阶段子作业间具有依赖关系,所述依赖关系为当上一阶段子作业的数据处理未完成时下一阶段子作业的数据处理状态为等待状态;
连续数据交换RDD,用于执行与第一个阶段子作业对应的连续数据交换映射任务,执行与下一个阶段子作业对应的连续数据交换映射任务。
在一些实施例中,连续数据交换RDD还用于根据时期编号、有向无环图中的节点总数量及每个阶段子作业在所述有向无环图中的位置编号生成每个所述阶段子作业的数据交换编号。
在一些实施例中,通过公式ShuffleID=epochID*totalShuffleNum+baseShuffleID生成数据交换编号,ShuffleID表示阶段子作业的数据交换编号,epochID表示当前时期编号,totalShuffleNum表示当前有向无环图所有阶段子作业的数量,baseShuffleID表示阶段子作业在当前有向无环图中的位置编号。
在一些实施例中,连续数据交换RDD用于从数据交换控制端中获取与阶段子作业对应的写入端并调用与阶段子作业对应的写入接口,注册与所述阶段子作业对应的输出信息。
在一些实施例中,连续数据交换RDD还用于判断当前阶段子作业是否为最后一个阶段子作业。
第三方面,本公开实施例提供了一种服务器,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的基于Apache Spark的数据交换方法。
第四方面,本公开实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,所述程序被执行时实现如上所述的基于Apache Spark的数据交换方法。
本公开实施例提供的基于Apache Spark的数据交换方法,在连续处理计算模式下,有向无环图调度器将批量作业的多个阶段子作业一次性递归提交,当追踪服务端判断出当前的计算模型为连续处理计算模式时,发送启动注册指令至追踪客户端,追踪客户端根据注册指令启动与第一个阶段子作业对应的注册机制,连续数据交换RDD执行与第一个阶段子作业对应的连续数据交换映射任务,追踪客户端根据预先生成的数据交换编号启动与下一个阶段子作业对应的注册机制,连续数据交换RDD执行与下一个阶段子作业对应的连续数据交换映射任务。其能够在Apache Spark的连续处理计算模式下支持低延迟数据交换操作,能够在连续处理计算模式下复用批量作业相同的代码实现低延迟实时计算及满足用户的相同作业实时化需求。
附图说明
附图用来提供对本公开的实施例作进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开实施例提供的一种基于Apache Spark的数据交换方法的流程示意图;
图2为本公开实施例提供的另一种基于Apache Spark的数据交换方法的流程示意图;
图3为本公开实施例提供的又一种基于Apache Spark的数据交换方法的流程示意图;
图4为本公开实施例提供的一种基于Apache Spark的数据交换系统的结构示意图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的基于Apache Spark的数据交换方法及系统、服务器及计算机可读介质进行详细描述。
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其群组。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
图1为本公开实施例提供的一种基于Apache Spark的数据交换方法的流程示意图,如图1所示,该方法可以由基于Apache Spark的数据交换系统来执行,该系统可以通过软件和/或硬件的方式实现,该系统可以集成在服务器中。该方法包括:
步骤S1、在连续处理计算模式下,有向无环图调度器将批量作业的多个阶段子作业一次性递归提交。
在连续处理计算模式下,作业的任务处理持续运行。为在连续处理计算模式下实现数据交换(shuffle),有向无环图调度器(DAGScheduler)将批量作业的多个阶段子作业(stage)一次性递归提交,以使得批量作业的任一阶段子作业在连续处理计算模型下支持连续的数据交换,也即使得有向无环图调度器支持持续的阶段子作业数据交换。
优选地,连续处理计算模式为Streaming(流式)连续处理计算模式。
图2为本公开实施例提供的另一种基于Apache Spark的数据交换方法的流程示意图,如图2所示,在步骤S1之后还包括:
步骤S12、连续数据交换RDD根据时期编号、有向无环图中的节点总数量及每个阶段子作业在有向无环图中的位置编号生成每个阶段子作业的数据交换编号。
具体地,通过公式ShuffleID=epochID*totalShuffleNum+baseShuffleID生成数据交换编号(shuffleID),ShuffleID表示阶段子作业的数据交换编号,epochID表示当前时期编号,totalShuffleNum表示当前有向无环图所有阶段子作业的数量,baseShuffleID表示阶段子作业在当前有向无环图中的位置编号。当前时期编号与当前有向无环图对应。
将批量作业的多个阶段子作业一次性递归提交后,需设置多个阶段子作业间的依赖关系,依赖关系为当上一阶段子作业的数据处理未完成时下一阶段子作业的数据处理状态为等待状态。本实施例中,数据交换编号用于实现多个阶段子作业间的依赖关系,具体地,通过数据交换编号创建Cont inuousShuffleDependency,通过ContinuousShuffleDependency实现多个阶段子作业间的依赖关系。
步骤S2、当追踪服务端判断出当前的计算模型为连续处理计算模式时,发送启动注册指令至追踪客户端。
步骤S3、追踪客户端根据注册指令启动与第一个阶段子作业对应的注册机制。
不同于现有技术经由追踪服务端(TrackerMaster)启动注册机制,本实施例经由追踪客户端(OutputTrackerWorker)启动注册机制。具体地,注册阶段子作业至MapOutputTrackerMaster。
步骤S4、连续数据交换RDD执行与第一个阶段子作业对应的连续数据交换映射任务。
具体地,连续数据交换RDD(Continuous Shuffle Resil ient DistributedDatasets)从数据交换控制端(ShuffleManager)中获取与阶段子作业对应的写入端(Writer)并调用与阶段子作业对应的写入(Writer.write)接口。注册与阶段子作业对应的输出信息(map output status)。
步骤S5、追踪客户端根据预先生成的数据交换编号启动与下一个阶段子作业对应的注册机制,当前阶段子作业与下一个阶段子作业间具有依赖关系。
本实施例中,当前阶段子作业和下一阶段子作业的数据交换编号具有先后关系或大小关系,根据数据交换编号启动与下一阶段子作业对应的注册机制。
步骤S6、连续数据交换RDD执行与下一个阶段子作业对应的连续数据交换映射任务。
具体参见上述步骤S4,此处不再赘述。
图3为本公开实施例提供的又一种基于Apache Spark的数据交换方法的流程示意图,如图3所示,在步骤S6之后还包括:
步骤S7、连续数据交换RDD判断当前阶段子作业是否为最后一个阶段子作业,若否,则继续执行步骤S6;若是,则流程结束。
基于上述步骤,本实施例可在连续处理计算模式下实现持续的数据交换。
值得说明的是,本实施例中的连续数据交换RDD为对现有的ShuffleRowRDD封装后生成。
本公开中提供的基于Apache Spark的数据交换方法,在连续处理计算模式下,有向无环图调度器将批量作业的多个阶段子作业一次性递归提交,当追踪服务端判断出当前的计算模型为连续处理计算模式时,发送启动注册指令至追踪客户端,追踪客户端根据注册指令启动与第一个阶段子作业对应的注册机制,连续数据交换RDD执行与第一个阶段子作业对应的连续数据交换映射任务,追踪客户端根据预先生成的数据交换编号启动与下一个阶段子作业对应的注册机制,连续数据交换RDD执行与下一个阶段子作业对应的连续数据交换映射任务。其能够在Apache Spark的连续处理计算模式下支持低延迟数据交换操作,能够在连续处理计算模式下复用批量作业相同的代码实现低延迟实时计算及满足用户的相同作业实时化需求。
本公开中提供的基于Apache Spark的数据交换方法在执行的过程中,能够与Apache Spark中的Dataset API(Appl ication Programming Interface,应用程序编程接口)和有向无环图调度逻辑完全兼容,不对Apache Spark的其他功能或模块造成影响。
应当注意,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
需要说明的是,在本公开中,上述各实施例中所涉及的技术手段在不相违背的情况可以相互结合。
图4为本公开实施例提供的一种基于Apache Spark的数据交换系统的结构示意图,如图4所示,该系统包括:有向无环图调度器1、追踪服务端2、追踪客户端3和连续数据交换RDD4。
有向无环图调度器1用于在连续处理计算模式下,将批量作业的多个阶段子作业一次性递归提交。追踪服务端2用于当判断出当前的计算模型为连续处理计算模式时,发送启动注册指令至追踪客户端。追踪客户端3用于根据注册指令启动与第一个阶段子作业对应的注册机制,根据预先生成的数据交换编号启动与下一个阶段子作业对应的注册机制,当前阶段子作业与下一个阶段子作业间具有依赖关系,依赖关系为当上一阶段子作业的数据处理未完成时下一阶段子作业的数据处理状态为等待状态。连续数据交换RDD4用于执行与第一个阶段子作业对应的连续数据交换映射任务,执行与下一个阶段子作业对应的连续数据交换映射任务。
进一步地,连续数据交换RDD4还用于根据时期编号、有向无环图中的节点总数量及每个阶段子作业在有向无环图中的位置编号生成每个阶段子作业的数据交换编号。
进一步地,通过公式ShuffleID=epochID*totalShuffleNum+baseShuffleID生成数据交换编号,ShuffleID表示阶段子作业的数据交换编号,epochID表示当前时期编号,totalShuffleNum表示当前有向无环图所有阶段子作业的数量,baseShuffleID表示阶段子作业在当前有向无环图中的位置编号。
进一步地,连续数据交换RDD4用于从数据交换控制端中获取与阶段子作业对应的写入端并调用与阶段子作业对应的写入接口,注册与阶段子作业对应的输出信息。
进一步地,连续数据交换RDD4还用于判断当前阶段子作业是否为最后一个阶段子作业。
另外,对于上述各模块、子模块、单元和子单元的实现细节和技术效果的描述,可以参见前述方法实施例的说明,此处不再赘述。
本公开实施例还提供了一种服务器,该服务器包括:一个或多个处理器以及存储装置;其中,存储装置上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如前述各实施例所提供的基于ApacheSpark的数据交换方法。
本公开实施例还提供了一计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被执行时实现如前述各实施例所提供的基于Apache Spark的数据交换方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (12)
1.一种基于Apache Spark的数据交换方法,包括:
在连续处理计算模式下,有向无环图调度器将批量作业的多个阶段子作业一次性递归提交;
当追踪服务端判断出当前的计算模型为所述连续处理计算模式时,发送启动注册指令至追踪客户端;
追踪客户端根据所述注册指令启动与第一个阶段子作业对应的注册机制;
连续数据交换RDD执行与第一个阶段子作业对应的连续数据交换映射任务;
追踪客户端根据预先生成的数据交换编号启动与下一个阶段子作业对应的注册机制,当前阶段子作业与下一个阶段子作业间具有依赖关系,所述依赖关系为当上一阶段子作业的数据处理未完成时下一阶段子作业的数据处理状态为等待状态;
连续数据交换RDD执行与下一个阶段子作业对应的连续数据交换映射任务。
2.根据权利要求1所述的基于Apache Spark的数据交换方法,其中,在有向无环图调度器将批量作业的多个阶段子作业一次性递归提交的步骤之后还包括:
连续数据交换RDD根据时期编号、有向无环图中的节点总数量及每个阶段子作业在所述有向无环图中的位置编号生成每个所述阶段子作业的数据交换编号。
3.根据权利要求2所述的基于Apache Spark的数据交换方法,其中,通过公式ShuffleID=epochID*totalShuffleNum+baseShuffleID生成数据交换编号,ShuffleID表示阶段子作业的数据交换编号,epochID表示当前时期编号,totalShuffleNum表示当前有向无环图所有阶段子作业的数量,baseShuffleID表示阶段子作业在当前有向无环图中的位置编号。
4.根据权利要求1所述的基于Apache Spark的数据交换方法,其中,执行与阶段子作业对应的连续数据交换映射任务的步骤包括:
从数据交换控制端中获取与阶段子作业对应的写入端并调用与阶段子作业对应的写入接口;
注册与所述阶段子作业对应的输出信息。
5.根据权利要求4所述的基于Apache Spark的数据交换方法,其中,在连续数据交换RDD执行与下一个阶段子作业对应的连续数据交换映射任务的步骤之后还包括:
连续数据交换RDD判断当前阶段子作业是否为最后一个阶段子作业;
若否,则继续执行所述追踪客户端启动与下一个阶段子作业对应的注册机制的步骤;若是,则流程结束。
6.一种基于Apache Spark的数据交换系统,包括:
有向无环图调度器,用于在连续处理计算模式下,将批量作业的多个阶段子作业一次性递归提交;
追踪服务端,用于当判断出当前的计算模型为所述连续处理计算模式时,发送启动注册指令至追踪客户端;
追踪客户端,用于根据所述注册指令启动与第一个阶段子作业对应的注册机制,根据预先生成的数据交换编号启动与下一个阶段子作业对应的注册机制,当前阶段子作业与下一个阶段子作业间具有依赖关系,所述依赖关系为当上一阶段子作业的数据处理未完成时下一阶段子作业的数据处理状态为等待状态;
连续数据交换RDD,用于执行与第一个阶段子作业对应的连续数据交换映射任务,执行与下一个阶段子作业对应的连续数据交换映射任务。
7.根据权利要求6所述的基于Apache Spark的数据交换系统,其中,连续数据交换RDD还用于根据时期编号、有向无环图中的节点总数量及每个阶段子作业在所述有向无环图中的位置编号生成每个所述阶段子作业的数据交换编号。
8.根据权利要求7所述的基于Apache Spark的数据交换系统,其中,通过公式ShuffleID=epochID*totalShuffleNum+baseShuffleID生成数据交换编号,ShuffleID表示阶段子作业的数据交换编号,epochID表示当前时期编号,totalShuffleNum表示当前有向无环图所有阶段子作业的数量,baseShuffleID表示阶段子作业在当前有向无环图中的位置编号。
9.根据权利要求6所述的基于Apache Spark的数据交换系统,其中,连续数据交换RDD用于从数据交换控制端中获取与阶段子作业对应的写入端并调用与阶段子作业对应的写入接口,注册与所述阶段子作业对应的输出信息。
10.根据权利要求9所述的基于Apache Spark的数据交换系统,其中,连续数据交换RDD还用于判断当前阶段子作业是否为最后一个阶段子作业。
11.一种服务器,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-5中任一所述的基于Apache Spark的数据交换方法。
12.一种计算机可读介质,其上存储有计算机程序,其中,所述程序被执行时实现如权利要求1-5中任一所述的基于Apache Spark的数据交换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910424935.5A CN110109747B (zh) | 2019-05-21 | 2019-05-21 | 基于Apache Spark的数据交换方法及系统、服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910424935.5A CN110109747B (zh) | 2019-05-21 | 2019-05-21 | 基于Apache Spark的数据交换方法及系统、服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110109747A CN110109747A (zh) | 2019-08-09 |
CN110109747B true CN110109747B (zh) | 2021-05-14 |
Family
ID=67491456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910424935.5A Active CN110109747B (zh) | 2019-05-21 | 2019-05-21 | 基于Apache Spark的数据交换方法及系统、服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109747B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258785B (zh) * | 2020-01-20 | 2023-09-08 | 北京百度网讯科技有限公司 | 数据洗牌方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631730A (zh) * | 2013-11-01 | 2014-03-12 | 深圳清华大学研究院 | 内存计算的缓存优化方法 |
CN105550318A (zh) * | 2015-12-15 | 2016-05-04 | 深圳市华讯方舟软件技术有限公司 | 一种基于Spark大数据处理平台的查询方法 |
CN105718244A (zh) * | 2016-01-18 | 2016-06-29 | 上海交通大学 | 一种流水化数据洗牌传输的Spark任务调度与执行方法 |
CN106339458A (zh) * | 2016-08-26 | 2017-01-18 | 华为技术有限公司 | 一种基于弹性分布式数据集的Stage划分方法和终端 |
CN107168782A (zh) * | 2017-04-24 | 2017-09-15 | 复旦大学 | 一种基于Spark与GPU的并行计算系统 |
CN107612886A (zh) * | 2017-08-15 | 2018-01-19 | 中国科学院大学 | 一种Spark平台Shuffle过程压缩算法决策方法 |
EP3447642A1 (en) * | 2017-08-24 | 2019-02-27 | Tata Consultancy Services Limited | System and method for predicting application performance for large data size on big data cluster |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104360903B (zh) * | 2014-11-18 | 2017-10-31 | 北京赛特斯信息科技股份有限公司 | Spark作业调度系统中实现任务数据解耦的方法 |
US11232100B2 (en) * | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US10554577B2 (en) * | 2017-03-14 | 2020-02-04 | International Business Machines Corporation | Adaptive resource scheduling for data stream processing |
-
2019
- 2019-05-21 CN CN201910424935.5A patent/CN110109747B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631730A (zh) * | 2013-11-01 | 2014-03-12 | 深圳清华大学研究院 | 内存计算的缓存优化方法 |
CN105550318A (zh) * | 2015-12-15 | 2016-05-04 | 深圳市华讯方舟软件技术有限公司 | 一种基于Spark大数据处理平台的查询方法 |
CN105718244A (zh) * | 2016-01-18 | 2016-06-29 | 上海交通大学 | 一种流水化数据洗牌传输的Spark任务调度与执行方法 |
CN106339458A (zh) * | 2016-08-26 | 2017-01-18 | 华为技术有限公司 | 一种基于弹性分布式数据集的Stage划分方法和终端 |
CN107168782A (zh) * | 2017-04-24 | 2017-09-15 | 复旦大学 | 一种基于Spark与GPU的并行计算系统 |
CN107612886A (zh) * | 2017-08-15 | 2018-01-19 | 中国科学院大学 | 一种Spark平台Shuffle过程压缩算法决策方法 |
EP3447642A1 (en) * | 2017-08-24 | 2019-02-27 | Tata Consultancy Services Limited | System and method for predicting application performance for large data size on big data cluster |
Non-Patent Citations (3)
Title |
---|
Adaptive Scheduling of Parallel Jobs in Spark Streaming;Dazhao Cheng,Yuan Cheny,Xiaobo Zhouz,Daniel Gmachy,Dejan Milojic;《IEEE Xplore》;20171231;全文 * |
Adaptive Scheduling Parallel Jobs with Dynamic Batching in Spark Streaming;Dazhao Cheng,Xiaobo Zhou,Yu Wang,Changjun Jiang;《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》;20181231;第29卷(第12期);全文 * |
Spark DAG优化MapReduce协同过滤算法;廖彬,张陶,于炯,国冰磊,张旭光,刘炎;《中山大学学报(自然科学版)》;20170531;第56卷(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110109747A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108710532B (zh) | 跨调度平台的依赖实现方法、装置、设备和存储介质 | |
US10523754B2 (en) | Methods for integrating applications with a data storage network and devices thereof | |
CN113434283B (zh) | 服务调度方法及装置、服务器、计算机可读存储介质 | |
CN110162344B (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
CN110609755A (zh) | 跨区块链节点的消息处理方法及装置、设备、介质 | |
CN110659131A (zh) | 任务处理方法、电子装置、计算机设备及存储介质 | |
CN112596871A (zh) | 业务处理方法和装置 | |
CN110362394B (zh) | 任务处理方法及装置、存储介质、电子装置 | |
CN110109747B (zh) | 基于Apache Spark的数据交换方法及系统、服务器 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN108614697B (zh) | 后台Dex编译管控的方法及装置 | |
CN109960571A (zh) | 一种多模块调度方法、装置及系统 | |
CN109558254B (zh) | 异步回调方法、系统、装置及计算机可读存储介质 | |
CN112685145A (zh) | 任务管理方法、装置以及计算机设备 | |
CN112130900B (zh) | 一种bmc的用户信息管理方法、系统、设备以及介质 | |
EP4044043A1 (en) | Storage process running method and apparatus, database system, and storage medium | |
CN111198689B (zh) | 一种代码执行方法、装置及计算机可读存储介质 | |
WO2021052026A1 (zh) | 微服务升级方法、电子设备和可读存储介质 | |
CN114327673A (zh) | 一种任务启动方法、装置、电子设备及存储介质 | |
CN111190725B (zh) | 任务处理方法、装置、存储介质及服务器 | |
CN113032118A (zh) | 用于计算机应用程序的异步操作处理方法和相应的系统 | |
CN111858234A (zh) | 一种任务执行方法、装置、设备、介质 | |
CN110716972A (zh) | 高频率调用外部接口出错的处理方法和装置 | |
CN113127221A (zh) | 一种限制消息消费速率的方法、装置、设备及存储介质 | |
CN116089020B (zh) | 虚拟机运行方法、扩容方法、扩容系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |