基于spark内核的任务执行方法、系统和计算机设备技术方案

技术编号:27655028 阅读:13 留言:0更新日期:2021-03-12 14:16
本申请涉及一种基于spark内核的任务执行方法、系统、计算机设备,其中,该任务执行方法包括:任务流生成步骤,spark driver节点读取并根据一配置文件生成任务流;任务分配步骤,akka根据任务流分配任务;任务执行步骤,一调度器根据分配任务的信息将任务分发至对应的执行节点,并将执行结果发送至spark driver节点。通过将akka和spark的结合达到对etl的任务流并行执行以及对该任务流中每个任务并行执行,从而提高执行效率;以及通过配置文件的方式省去编写代码的成本,提高开发效率。

【技术实现步骤摘要】
基于spark内核的任务执行方法、系统和计算机设备
本申请涉及大数据
,特别是涉及基于spark内核的任务执行方法、系统、计算机设备。
技术介绍
随着大数据云时代的到来,各行各业对数据的应用的需求越来越多,在数据应用中,对多元异构数据的同步和计算是数据应用的基础,如何在不同数据源间进行高效同步和快速开发etl成为行业面临的主要问题。现有技术中一般通过编写mapreduce代码或spark代码进行etl开发。但是存在以下缺点:1、不支持实时数据同步;2、不支持集群部署,受限于单台服务器性能,速度慢,易发生内存溢出等;3、不支持配置多任务;4、任务失败无通知机制;5、进行etl计算速度慢;6、需要通过编写代码、打包项目部署,开发效率低,难度高。目前针对相关技术中开发效率低的问题,尚未提出有效的解决方案。
技术实现思路
本申请实施例提供了一种基于spark内核的任务执行方法、系统、计算机设备,通过设置配置文件降低了开发门槛,提高开发效率,降低维护成本,提升etl速度,提高系统的鲁棒性。第一方面,本申请实施例提供了一种基于spark内核的任务执行方法,包括以下步骤:任务流生成步骤,sparkdriver节点读取并根据一配置文件生成任务流;任务分配步骤,akka根据所述任务流分配任务;任务执行步骤,一调度器根据所述分配任务的信息将任务分发至对应的执行节点,并将执行结果发送至所述sparkdriver节点。<br>在其中一些实施例中,所述任务流生成步骤具体包括:通过编写spark和akka代码,读取并解析所述配置文件生成dag图。在其中一些实施例中,所述任务分配步骤具体包括:遍历所述dag图的每一个任务并判断其状态,如果没有执行,则判断是否存在父节点任务,若有所述父节点任务则等待所述父节点任务执行成功,若无父节点任务或父节点任务全部已执行成功,则通过actor模型将该所述任务分发给executor进行执行。在其中一些实施例中,所述任务执行步骤具体包括:通过所述actor模型将所述执行结果发送至所述sparkdriver节点,所述sparkdriver节点接收并记录其状态;当所述任务执行失败时,进行重试,当重试次数超过预设次数则判定所述任务失败并退出程序,输出报警信息;当所述任务执行成功时,继续执行子节点任务,直至所述任务全部完成。在其中一些实施例中,所述配置文件使用json格式定义数据源、同步数据格式和指定数据转换逻辑。第二方面,本申请实施例提供了一种基于spark内核的任务执行系统,应用上述第一方面所述的基于spark内核的任务执行方法,包括:任务流生成模块,sparkdriver节点读取并根据一配置文件生成任务流;任务分配模块,akka根据所述任务流分配任务;任务执行模块,一调度器根据所述分配任务的信息将任务分发至对应的执行节点,并将执行结果发送至所述sparkdriver节点。在其中一些实施例中,所述任务流生成模块通过编写spark和akka代码,读取并解析所述配置文件生成dag图。在其中一些实施例中,所述任务分配模块遍历所述dag图的每一个任务并判断其状态,如果没有执行,则判断是否存在父节点任务,若有所述父节点任务则等待所述父节点任务执行成功,若无父节点任务或父节点任务全部已执行成功,则通过actor模型将该所述任务分发给executor进行执行。在其中一些实施例中,所述任务执行模块包括:状态记录单元,通过所述actor模型将所述执行结果发送至所述sparkdriver节点,所述sparkdriver节点接收并记录其状态;状态判断单元,当所述任务执行失败时,进行重试,当重试次数超过预设次数后则判定任务失败并退出程序,输出报警信息;当所述任务执行成功时,继续执行子节点任务,直至所述任务全部完成。第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的基于spark内核的任务执行方法。相比于相关技术,本申请实施例提供的基于spark内核的任务执行方法,通过将akka和spark的结合达到对etl的任务流并行执行以及对该任务流中每个任务并行执行,从而提高执行效率;以及通过配置文件的方式省去编写代码的成本,提高开发效率。本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例的基于spark内核的任务执行方法的流程图;图2是根据本申请实施例的任务执行方法的优选流程图;图3是根据本申请优选实施例的任务执行步骤的流程图;图4是根据本申请实施例的一种基于spark内核的任务执行系统的结构框图;图5为根据本申请实施例的计算机设备的硬件结构示意图。附图说明:1、任务流生成模块;2、任务分配模块;3、任务执行模块;31、状态记录单元;32、状态判断单元;81、处理器;82、存储器;83、通信接口;80、总线。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的
技术实现思路
的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属
内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所本文档来自技高网
...

【技术保护点】
1.一种基于spark内核的任务执行方法,其特征在于,包括以下步骤:/n任务流生成步骤,spark driver节点读取并根据一配置文件生成任务流;/n任务分配步骤,akka根据所述任务流分配任务;/n任务执行步骤,一调度器根据所述分配任务的信息将任务分发至对应的执行节点,并将执行结果发送至所述spark driver节点。/n

【技术特征摘要】
1.一种基于spark内核的任务执行方法,其特征在于,包括以下步骤:
任务流生成步骤,sparkdriver节点读取并根据一配置文件生成任务流;
任务分配步骤,akka根据所述任务流分配任务;
任务执行步骤,一调度器根据所述分配任务的信息将任务分发至对应的执行节点,并将执行结果发送至所述sparkdriver节点。


2.根据权利要求1所述的基于spark内核的任务执行方法,其特征在于,所述任务流生成步骤具体包括:
通过编写spark和akka代码,读取并解析所述配置文件生成dag图。


3.根据权利要求2所述的基于spark内核的任务执行方法,其特征在于,所述任务分配步骤具体包括:
遍历所述dag图的每一个任务并判断其状态,如果没有执行,则判断是否存在父节点任务,若有所述父节点任务则等待所述父节点任务执行成功,若无父节点任务或父节点任务全部已执行成功,则通过actor模型将该所述任务分发给executor进行执行。


4.根据权利要求3所述的基于spark内核的任务执行方法,其特征在于,所述任务执行步骤具体包括:
通过所述actor模型将所述执行结果发送至所述sparkdriver节点,所述sparkdriver节点接收并记录其状态;
当所述任务执行失败时,进行重试,当重试次数超过预设次数则判定所述任务失败并退出程序,输出报警信息;
当所述任务执行成功时,继续执行子节点任务,直至所述任务全部完成。


5.根据权利要求1所述的基于spark内核的任务执行方法,其特征在于,所述配置文件使用json格式定义数据源、同步数据格式和指定数据转换逻辑。


6.一种基于spark内核的任务执行系统...

【专利技术属性】
技术研发人员:段晓航
申请(专利权)人:恩亿科北京数据科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1