WO2020248708A1 - 一种Spark作业的提交方法及装置 - Google Patents

一种Spark作业的提交方法及装置 Download PDF

Info

Publication number
WO2020248708A1
WO2020248708A1 PCT/CN2020/085217 CN2020085217W WO2020248708A1 WO 2020248708 A1 WO2020248708 A1 WO 2020248708A1 CN 2020085217 W CN2020085217 W CN 2020085217W WO 2020248708 A1 WO2020248708 A1 WO 2020248708A1
Authority
WO
WIPO (PCT)
Prior art keywords
spark
job
execution
node
spark job
Prior art date
Application number
PCT/CN2020/085217
Other languages
English (en)
French (fr)
Inventor
刘有
尹强
王和平
黄山
杨峙岳
邸帅
卢道和
Original Assignee
深圳前海微众银行股份有限公司
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 深圳前海微众银行股份有限公司 filed Critical 深圳前海微众银行股份有限公司
Publication of WO2020248708A1 publication Critical patent/WO2020248708A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Abstract

本发明涉及金融科技领域,并公开了一种Spark作业的提交方法及装置,其中,方法包括:接收Spark作业的执行请求,根据执行请求,获取Yarn集群的节点黑名单,根据执行请求中Spark作业的作业参数、Yarn集群的节点黑名单,创建Spark引擎,通过Spark引擎将Spark作业发送至Yarn集群。该技术方案通过获取Yarn集群中故障节点,避免将Spark作业提交至故障节点,以实现Spark作业的高效执行。

Description

一种Spark作业的提交方法及装置
相关申请的交叉引用
本申请要求在2019年06月12日提交中国专利局、申请号为201910504561.8、申请名称为“一种Spark作业的提交方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明实施例涉及金融科技(Fintech)的大数据领域,尤其涉及一种Spark作业的提交方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,Spark技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对Spark技术提出的更高的要求。
Spark技术是专为大规模数据处理而设计的快速通用的计算引擎,Spark使用了内存运算技术,能在数据尚未写入硬盘时在内存分析运算。现有技术中,若Yarn集群中存在某个计算节点故障,则需要等待任务分配到该故障节点,并执行多次失败后才能确定出该节点为故障节点,且上报故障节点。Spark作业提交时,无法获知故障节点,导致作业提交的进度受到影响。
发明内容
本发明实施例提供一种Spark作业的提交方法及装置,用以获取Yarn集群中故障节点,并避免将Spark作业提交至故障节点,以实现Spark作业的高效执行。
本发明实施例提供的一种Spark作业的提交方法,包括:
接收Spark作业的执行请求;
根据所述执行请求,获取Yarn集群的节点黑名单;所述节点黑名单是监控告警平台生成的记录有所述Yarn集群中不可用的执行节点的名单;
根据所述执行请求中所述Spark作业的作业参数、所述Yarn集群的节点黑名单,创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述Yarn集群。
上述技术方案中,建立机器黑名单机制,结合监控告警平台,获取监控告警平台的节点黑名单,在进行引擎初始化的时候,将节点黑名单中执行节点的参数考虑进去,防止将Spark作业发送至黑名单中的执行节点,有效避免Spark作业因为执行节点故障而出现的作业失败问题,从而实现Spark作业的高效执行。
可选的,所述方法还包括:
根据所述执行请求,获取所述Yarn集群中所述Spark作业的目标队列的资源使用情况;
所述根据所述执行请求中所述Spark作业的作业参数、所述Yarn集群的节点黑名单,创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述Yarn集群,包括:
根据所述节点黑名单删除所述Yarn集群中所述不可用的执行节点;
从所述Spark作业的目标队列中确定出用于执行所述Spark作业的第一资源队列,并结合所述执行请求中所述Spark作业的作业参数创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述第一资源队列。
上述技术方案中,获取Spark作业的目标队列的资源使用情况,并根据资源使用情况确定当前资源充足的队列进行Spark作业的提交,即确定出用于执行该Spark作业的第一资源队列,以使得该Spark作业得到高效的调度执行。
可选的,还包括:
获取所述Spark作业在所述第一资源队列中的执行信息;
在确定所述Spark作业执行失败后,根据所述执行信息,确定所述Spark作业的错误代码,并调整所述Spark作业的作业参数;
根据调整后的作业参数,重新生成所述Spark作业并发送至所述第一资源队列。
可选的,所述Spark作业的作业参数包括:
所述Spark作业执行过程中的执行节点的个数、各所述执行节点的内存、网络延时参数、各任务的失败重试数。
上述技术方案中,通过获取Spark作业在第一资源队列中的执行信息,实现跟踪Spark作业的执行状态,在确定Spark作业执行失败后,可以根据执行信息确定错误代码,并根据错误代码的定义,调整作业参数,并将调整作业参数后的Spark作业重新提交,直至成功执行Spark作业为止,无需工作人员定位失败原因,以及手动调整参数和重新提交作业,提高Spark作业的执行效率,且降低人力成本。
相应的,本发明实施例还提供了一种Spark作业的提交装置,包括:
收发单元,用于接收Spark作业的执行请求;
处理单元,用于根据所述执行请求,获取Yarn集群的节点黑名单;所述节点黑名单是监控告警平台生成的记录有所述Yarn集群中不可用的执行节点的名单;根据所述执行请求中所述Spark作业的作业参数、所述Yarn集群的节点黑名单,创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述Yarn集群。
可选的,所述处理单元还用于:
根据所述执行请求,获取所述Yarn集群中所述Spark作业的目标队列的资源使用情况;
所述处理单元具体用于:
根据所述节点黑名单删除所述Yarn集群中所述不可用的执行节点;
从所述Spark作业的目标队列中确定出用于执行所述Spark作业的第一资源队列,并结合所述执行请求中所述Spark作业的作业参数创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述第一资源队列。
可选的,所述处理单元还用于:
获取所述Spark作业在所述第一资源队列中的执行信息;
在确定所述Spark作业执行失败后,根据所述执行信息,确定所述Spark作业的错误代码,并调整所述Spark作业的作业参数;
根据调整后的作业参数,重新生成所述Spark作业并发送至所述第一资源队列。
可选的,所述Spark作业的作业参数包括:
所述Spark作业执行过程中的执行节点的个数、各所述执行节点的内存、网络延时参数、各任务的失败重试数。
相应的,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述Spark作业的提交方法。
相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述Spark作业的提交方法。
相应的,本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读非易失性存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使得所述计算机执行上述Spark作业的提交方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构的示意图;
图2为本发明实施例提供的一种Spark作业的提交方法的流程示意图;
图3为本发明实施例提供的另一种Spark作业的提交方法的示意图;
图4为本发明实施例提供的一种Spark作业的提交装置的结构示意图;
图5为本申请提供的一种计算设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在Spark On Yarn的集群模式下,主要有两种类型的作业运行方式,一种是Yarn-Cluster模式,另外一种是Yarn-Client模式。
Yarn-Cluster模式下,驱动器节点(Driver)运行在AM(Application Master)中,它负责向Yarn申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉客户端(Client),作业会继续在Yarn上运行,因而Yarn-Cluster模式不适合运行交互类型的作业。
Yarn-Client模式下,AM向Yarn请求执行节点(Executor),Client会和请求的容器(Container)通信来调度执行节点的工作,Client模式是一种更加可控作业运行模式,可以方便的获取作业的运行进度、运行日志、运行结果等信息。
Yarn-Cluster模式和Yarn-Client模式一般都使用Spark官方提供的Spark-Submit命令,需设置运行所需要的参数,比如Yarn队列名称,执行节点的执行个数、CPU(Central Processing Unit,中央处理器)个数、内存大小,以及驱动器节点的CPU个数、内存大小。
示例性的,Spark-Submit命令可以如下所示:
·./bin/spark-submit\
·--class org.apache.spark.examples.SparkPi\
·--master yarn\
·--queue QUEUE_NAME\
·--driver-memory 4G\
·--deploy-mode cluster\#can be client for client mode
·--executor-memory 20G\
·--num-executors 50\
·/path/to/examples.jar\
·1000
需要说明的是,提交上去的Spark作业在Yarn集群的运行过程中,并不一定每次都能正确执行,在很多节点的Yarn集群中,有时会因为某个节点的磁盘故障导致应用失败,有时因为存在OOM(Out Of Memory,内存溢出)错误导致应用失败,有时因为队列资源紧张一直不能被调度执行等一些问题,导致作业无法在无人值守下能正确执行。
而针对上述问题,考虑到数据的本地性问题,现有的方式很可能还是反复把任务分发到上述的故障节点,任务失败达到一定次数,最终会导致Spark作业出现失败。如计算资源的设置不合理,导致节点出现OOM错误,Spark作业最终运行错误,反复提交后还是无法正确运行。如当一个队列同时运行作业过多,导致一些高优先级的作业不断排队等待不能及时调度执行等等一些问题。很明显,现有的方式还是存在上述缺陷。
在本发明实施例中,通过总结归类分析,发现大部分都是以上一些比较常见的错误发生导致,这种依赖于Spark原生的简单作业提交方式没法提升作业的执行成功率,作业出错后还需要大量人工干预,定位问题耗费大量时间和精力,而这种情况严重不符合银行等金融机构的实际需求。基于此缺陷,提出本发明Spark作业的提交方法。
图1示例性的示出了本发明实施例提供Spark作业的提交方法所适用的系统架构,该系统架构可以包括引擎管理服务器100、对外服务入口200、Yarn集群300和监控告警平台400。
其中,引擎管理服务器100负责管理Spark Context(Spark上下文内容)所在的进程创建、状态跟踪、进程销毁等。引擎管理服务器100包括一个或多个Spark Yarn Client引擎,多个Spark Yarn Client引擎可并行执行,Spark Yarn Client引擎通过RPC(Remote Procedure Call,远程过程调用)与对外服务入口200进行通信。Spark Yarn Client引擎在一些实施例中,又可以叫做Spark引擎或Spark Yarn客户端引擎。
对外服务入口200包含作业管理模块和执行队列,负责接收外部作业的提交,并跟踪作业的执行状态,当作业运行过程中出现异常,对外服务入口200可以根据作业的错误代码,自动调整作业参数设置,并进行自动重试提交。本实例中,该对外服务接口可接收HTTP(HyperText Transfer Protocol,超文本传输协议)请求或Socket(套接字)请求等类型的Spark作业执行请求。
Yarn集群300为提供大数据平台中作业调度和集群资源管理的框架。
监控告警平台400用于监控Yarn集群300中作业运行过程中的节点的运行状态,并及时获取故障节点,如磁盘不可读、磁盘写满等故障节点,并建立节点黑名单,节点黑名单即监控告警平台400生成的记录有Yarn集群300中不可用的执行节点的名单。监控告警平台400中的节点黑名单可以被引擎管理服务器100获取,用于引擎管理服务器100在启动Spark作业时,将这些节点黑名单中的执行节点过滤掉,从而及时防止作业被调度到这些故障节点上。
基于上述描述,图2示例性的示出了本发明实施例提供的一种Spark作业的提交方法的流程,该流程可以由Spark作业的提交装置执行。
如图2所示,该流程具体包括:
步骤201,接收Spark作业的执行请求。
步骤202,根据所述执行请求,获取Yarn集群的节点黑名单。
其中,节点黑名单是监控告警平台生成的记录有Yarn集群中不可用的执行节点的名单。
步骤203,根据所述执行请求中所述Spark作业的作业参数、所述Yarn 集群的节点黑名单,创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述Yarn集群。
对外服务入口接收外部系统发送的Spark作业的执行请求,并将该Spark作业放入执行队列中,对外服务入口用于对该执行队列中的Spark作业的执行状态进行跟踪。然后,对外服务入口将执行队列中的Spark作业发送至引擎管理服务器,引擎管理服务器通过统一的对外接口确定待执行的Spark作业,并从监控告警平台中获取Yarn集群对应的节点黑名单。引擎管理服务器根据获取到的Yarn集群的节点黑名单、Spark作业的作业参数,创建Spark引擎,并通过Spark引擎将Spark作业提交到Yarn集群。
需要说明的是,在提交的Spark作业在Yarn集群中无法获取计算资源时,会一直处于Accept状态,得不到实际的调度执行,需要人工重新提交任务,从而导致作业提交进度受影响。因此,本实施例中为了进一步提高作业提交的效率,引擎管理服务器在接收到Spark作业时,根据当前资源队列的资源使用情况,确定当前资源充足的队列进行Spark作业的提交,即通过Yarn的接口,主动获取Yarn集群中Spark作业的目标队列的资源使用情况,从目标队列中确定出用于执行Spark作业的第一资源队列,并通过Spark引擎将Spark作业发送至第一资源队列,进而实现Spark作业的高效调度执行。
即,所述方法还包括:
根据所述执行请求,获取所述Yarn集群中所述Spark作业的目标队列的资源使用情况;
所述根据所述执行请求中所述Spark作业的作业参数、所述Yarn集群的节点黑名单,创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述Yarn集群,包括:
根据所述节点黑名单删除所述Yarn集群中所述不可用的执行节点;
从所述Spark作业的目标队列中确定出用于执行所述Spark作业的第一资源队列,并结合所述执行请求中所述Spark作业的作业参数创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述第一资源队列。
需要说明的是,Yarn集群中包含有多个资源队列,每个资源队列中都对应有一个资源池,每个资源池由多个节点构成,节点包括但不限于Spark驱动器节点、AM节点和执行节点等节点。其中,每一个资源队列所在资源池的多个节点形成一个Spark应用,以由该Spark应用进行Spark作业的执行。因此,在获取Yarn集群的计算资源和节点黑名单之后,先根据节点黑名单去掉不可用的执行节点,然后获取Yarn集群中Spark作业的目标队列的资源使用情况,找出当前空闲的资源队列,之后在空闲的资源队列中结合执行请求中Spark作业的作业参数选择符合该作业参数的节点,并根据选择的节点的标识创建Spark引擎,此时选中的节点会组成Spark应用,之后通过该Spark引擎将Spark作业发送至第一资源队列的Spark应用中,从而实现Spark作业的执行。
本发明实施例中,Spark引擎将Spark作业提交至Yarn集群的Spark应用,具体是发送至Yarn集群中的RM(Resource Manager)节点中,RM节点启动AM节点,AM节点向RM节点请求执行节点,以使执行节点启动以运行提交的Spark作业。
此外,引擎管理服务器将Spark Context的创建包装起来,用于Spark引擎的创建和销毁,并定时维护心跳信息。在Spark引擎启动前,可以主动从Yarn集群中获取各资源队列的资源使用情况,并从中确定出比较空闲的资源队列作为第一资源队列,用于将Spark作业发送至第一资源队列。进一步的,可以将已提交但预设时段后仍未被Yarn调度的Spark作业主动删除,从而防止Spark作业提交后,因为Yarn集群的资源队列问题,而长时间等待影响最终批量定时调度。
此外,对外服务入口还可以跟踪Spark作业的执行状态,具体实现中,对外服务入口获取Spark作业在第一资源队列中的执行信息,并在监控到Spark作业执行失败后,可以根据执行信息,确定Spark作业的错误代码,并根据Spark作业的错误代码,调整Spark作业的作业参数,根据调整后的作业参数,重新生成Spark作业并发送至第一资源队列。
可选的,对外服务入口可以针对不同的Spark作业的错误代码,设置具有针对性的作业参数调整方式。Spark作业的常见错误有节点出现OOM导致发生大量shuffle操作,由于GC(Garbage Collection,垃圾回收)问题、网络等原因丢失了执行节点等,结合Spark作业的常见错误,可以自动调整的作业参数包括但不限于Spark作业执行过程中的执行节点的个数、各执行节点的内存、网络延时参数、各任务(Task)的失败重试数。例如,当出现OOM时,可以调整各执行节点的内存大小,如将原来设置的2G内存提升1倍,即设置为2×2G内存后重新提交。
为了更好的解释本发明实施例,下面将在具体的实施场景下描述该Spark作业的提交流程,如图3所示,具体如下:
步骤301,外部系统发送Spark作业的执行请求。
执行请求可以是HTTP请求、Socket请求等。
步骤302,对外服务入口接收Spark作业的执行请求,将Spark作业放入执行队列中,并跟踪Spark作业的执行状态。
步骤303,对外服务入口通过引擎管理服务器的RPC接口向引擎管理服务器发送Spark引擎创建请求。
步骤304,引擎管理服务器向Yarn集群中的RM查询计算资源。
步骤305,引擎管理服务器从监控告警平台中获取节点黑名单。
步骤306,引擎管理服务器创建Spark引擎。
步骤307,引擎管理服务器通过Spark引擎中的驱动器节点提交Spark作业到Yarn集群的RM。
步骤308,Yarn集群中的RM接收到Spark作业的请求后,启动Yarn集群中的AM。其中,AM是运行在Container中。
步骤309,Yarn集群中的AM向RM请求执行节点。
步骤310,Yarn集群中的AM启动请求到的执行节点。
步骤311,引擎管理服务器创建的Spark引擎接收对外服务入口发送的Spark作业,如SQL(Structured Query Language,结构化查询语言)、Scala代 码。
步骤312,Spark引擎中的Spark驱动器节点发送任务至Yarn集群中的执行节点。
步骤313,Yarn集群中的执行节点执行任务,节点监控线程监控节点运行状态,并发送至监控告警平台。
步骤314,对外服务入口获取Spark作业的执行信息,生成执行结果、执行日志和执行状态等信息。
本发明实施例可应用于金融科技(Fintech)领域,金融科技领域是指将信息技术融入金融领域后,为金融领域带来的一种新的创新科技,通过使用先进的信息技术辅助实现金融作业、交易执行以及金融系统改进,可以提升金融系统的处理效率、业务规模,并可以降低成本和金融风险。示例性的,可以在银行中使用Spark做用户的白名单分析和黑名单分析,可以在银行中基于Spark执行ETL(Extract-transform-load,数据抽取、清洗、转换、装载)作业,在执行各种Spark应用时,可以通过合理调度Yarn集群中的计算资源,实现Spark作业的高效执行。
本技术方案采用一种能够对Client进行管控,对Spark作业进度进行跟踪处理,并根据常见错误制定参数调整,能够自动优化重试提交Spark作业的方案,本技术方案有益效果如下:
(1)在接收到Spark作业的执行请求后,将执行请求中的Spark作业提交到Yarn集群,以使Yarn集群启动资源队列,并且在接收到Spark作业时,根据当前资源队列的资源使用情况,确定出当前资源充足的队列进行Spark作业的提交,即确定出用于执行该Spark作业的第一资源队列,以使得该Spark作业得到高效的调度执行,且将已提交但预设时段后仍未被Yarn调度的Spark作业主动删除,从而防止Spark作业提交后,因为Yarn集群的资源队列问题,而长时间等待影响最终批量定时调度。
(2)建立机器黑名单机制,结合监控告警平台,获取监控告警平台的节点黑名单,将集群的一些特定的告警错误上报节点纳入节点黑名单管理,在 进行引擎初始化的时候,将节点黑名单中执行节点的参数考虑进去,防止将Spark作业提交至黑名单中的执行节点,有效避免Spark作业因为执行节点故障而出现的作业失败问题。
(3)通过获取Spark作业在第一资源队列中的执行信息,实现跟踪Spark作业的执行状态,在确定Spark作业执行失败后,可以根据执行信息确定错误代码,并根据错误代码的定义,调整作业参数,并将调整作业参数后的Spark作业重新提交,直至成功执行Spark作业为止,无需工作人员定位失败原因,以及手动调整参数和重新提交作业,提高Spark作业的执行效率,且降低人力成本。
基于同一发明构思,图4示例性的示出了本发明实施例提供的一种Spark作业的提交装置的结构,该装置可以执行Spark作业的提交方法的流程。
收发单元401,用于接收Spark作业的执行请求;
处理单元402,用于根据所述执行请求,获取Yarn集群的节点黑名单;所述节点黑名单是监控告警平台生成的记录有所述Yarn集群中不可用的执行节点的名单;根据所述执行请求中所述Spark作业的作业参数、所述Yarn集群的节点黑名单,创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述Yarn集群。
可选的,所述处理单元402还用于:
根据所述执行请求,获取所述Yarn集群中所述Spark作业的目标队列的资源使用情况;
所述处理单元402具体用于:
根据所述节点黑名单删除所述Yarn集群中所述不可用的执行节点;
从所述Spark作业的目标队列中确定出用于执行所述Spark作业的第一资源队列,并结合所述执行请求中所述Spark作业的作业参数创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述第一资源队列。
可选的,所述处理单元402还用于:
获取所述Spark作业在所述第一资源队列中的执行信息;
在确定所述Spark作业执行失败后,根据所述执行信息,确定所述Spark作业的错误代码,并调整所述Spark作业的作业参数;
根据调整后的作业参数,重新生成所述Spark作业并发送至所述第一资源队列。
可选的,所述Spark作业的作业参数包括:
所述Spark作业执行过程中的执行节点的个数、各所述执行节点的内存、网络延时参数、各任务的失败重试数。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
基于与上述图5所示的方法相同的构思,本申请还提供一种计算设备,如图5所示,该计算设备包括:
处理器501、存储器502、收发器503、总线接口504;其中,处理器501、存储器502与收发器503之间通过总线连接;
所述处理器501,用于读取所述存储器502中的程序,执行上述Spark作业的提交方法;
处理器501可以是中央处理器(central processing unit,简称CPU),网络处理器(network processor,简称NP)或者CPU和NP的组合。还可以是硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称ASIC),可编程逻辑器件(programmable logic device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,简称CPLD),现场可编程逻辑门阵列(field-programmable gate array,简称FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。
所述存储器502,用于存储一个或多个可执行程序,可以存储所述处理器501在执行操作时所使用的数据。
具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器502可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称RAM);存储器502也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk  drive,简称HDD)或固态硬盘(solid-state drive,简称SSD);存储器502还可以包括上述种类的存储器的组合。
存储器502存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
总线接口504可以为有线通信接入口,无线总线接口或其组合,其中,有线总线接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线总线接口可以为WLAN接口。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述Spark作业的提交方法。
基于同一发明构思,本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读非易失性存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使得所述计算机执行上述Spark作业的提交方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流 程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (11)

  1. 一种Spark作业的提交方法,其特征在于,包括:
    接收Spark作业的执行请求;
    根据所述执行请求,获取Yarn集群的节点黑名单;所述节点黑名单是监控告警平台生成的记录有所述Yarn集群中不可用的执行节点的名单;
    根据所述执行请求中所述Spark作业的作业参数、所述Yarn集群的节点黑名单,创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述Yarn集群。
  2. 如权利要求1所述的方法,其特征在于,所述方法还包括:
    根据所述执行请求,获取所述Yarn集群中所述Spark作业的目标队列的资源使用情况;
    所述根据所述执行请求中所述Spark作业的作业参数、所述Yarn集群的节点黑名单,创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述Yarn集群,包括:
    根据所述节点黑名单删除所述Yarn集群中所述不可用的执行节点;
    从所述Spark作业的目标队列中确定出用于执行所述Spark作业的第一资源队列,并结合所述执行请求中所述Spark作业的作业参数创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述第一资源队列。
  3. 如权利要求2所述的方法,其特征在于,还包括:
    获取所述Spark作业在所述第一资源队列中的执行信息;
    在确定所述Spark作业执行失败后,根据所述执行信息,确定所述Spark作业的错误代码,并调整所述Spark作业的作业参数;
    根据调整后的作业参数,重新生成所述Spark作业并发送至所述第一资源队列。
  4. 如权利要求3所述的方法,其特征在于,所述Spark作业的作业参数包括:
    所述Spark作业执行过程中的执行节点的个数、各所述执行节点的内存、网络延时参数、各任务的失败重试数。
  5. 一种Spark作业的提交装置,其特征在于,包括:
    收发单元,用于接收Spark作业的执行请求;
    处理单元,用于根据所述执行请求,获取Yarn集群的节点黑名单;所述节点黑名单是监控告警平台生成的记录有所述Yarn集群中不可用的执行节点的名单;根据所述执行请求中所述Spark作业的作业参数、所述Yarn集群的节点黑名单,创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述Yarn集群。
  6. 如权利要求5所述的装置,其特征在于,所述处理单元还用于:
    根据所述执行请求,获取所述Yarn集群中所述Spark作业的目标队列的资源使用情况;
    所述处理单元具体用于:
    根据所述节点黑名单删除所述Yarn集群中所述不可用的执行节点;
    从所述Spark作业的目标队列中确定出用于执行所述Spark作业的第一资源队列,并结合所述执行请求中所述Spark作业的作业参数创建Spark引擎,通过所述Spark引擎将所述Spark作业发送至所述第一资源队列。
  7. 如权利要求6所述的装置,其特征在于,所述处理单元还用于:
    获取所述Spark作业在所述第一资源队列中的执行信息;
    在确定所述Spark作业执行失败后,根据所述执行信息,确定所述Spark作业的错误代码,并调整所述Spark作业的作业参数;
    根据调整后的作业参数,重新生成所述Spark作业并发送至所述第一资源队列。
  8. 如权利要求7所述的装置,其特征在于,所述Spark作业的作业参数包括:
    所述Spark作业执行过程中的执行节点的个数、各所述执行节点的内存、网络延时参数、各任务的失败重试数。
  9. 一种计算设备,其特征在于,包括:
    存储器,用于存储程序指令;
    处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至4任一项所述的方法。
  10. 一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至4任一项所述的方法。
  11. 一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在计算机可读非易失性存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行权利要求1~4任一所述方法。
PCT/CN2020/085217 2019-06-12 2020-04-16 一种Spark作业的提交方法及装置 WO2020248708A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910504561.8 2019-06-12
CN201910504561.8A CN110262881A (zh) 2019-06-12 2019-06-12 一种Spark作业的提交方法及装置

Publications (1)

Publication Number Publication Date
WO2020248708A1 true WO2020248708A1 (zh) 2020-12-17

Family

ID=67917731

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/085217 WO2020248708A1 (zh) 2019-06-12 2020-04-16 一种Spark作业的提交方法及装置

Country Status (2)

Country Link
CN (1) CN110262881A (zh)
WO (1) WO2020248708A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262881A (zh) * 2019-06-12 2019-09-20 深圳前海微众银行股份有限公司 一种Spark作业的提交方法及装置
CN112540858B (zh) * 2019-09-23 2023-10-27 华为云计算技术有限公司 任务处理方法、服务器、客户端及系统
CN111031123B (zh) * 2019-12-10 2022-06-03 中盈优创资讯科技有限公司 Spark任务的提交方法、系统、客户端及服务端
CN111767092B (zh) * 2020-06-30 2023-05-12 深圳前海微众银行股份有限公司 作业执行方法、装置、系统及计算机可读存储介质
CN112000734A (zh) * 2020-08-04 2020-11-27 中国建设银行股份有限公司 一种大数据处理方法和装置
CN112328403A (zh) * 2020-11-25 2021-02-05 北京中天孔明科技股份有限公司 一种SparkContext的配置方法、装置及服务端
CN112486468A (zh) * 2020-12-15 2021-03-12 恩亿科(北京)数据科技有限公司 基于spark内核的任务执行方法、系统和计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653928A (zh) * 2016-02-03 2016-06-08 北京大学 一种面向大数据平台的拒绝服务检测方法
CN106980699A (zh) * 2017-04-14 2017-07-25 中国科学院深圳先进技术研究院 一种数据处理平台和系统
CN110262881A (zh) * 2019-06-12 2019-09-20 深圳前海微众银行股份有限公司 一种Spark作业的提交方法及装置
US20190370146A1 (en) * 2018-06-05 2019-12-05 Shivnath Babu System and method for data application performance management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653928A (zh) * 2016-02-03 2016-06-08 北京大学 一种面向大数据平台的拒绝服务检测方法
CN106980699A (zh) * 2017-04-14 2017-07-25 中国科学院深圳先进技术研究院 一种数据处理平台和系统
US20190370146A1 (en) * 2018-06-05 2019-12-05 Shivnath Babu System and method for data application performance management
CN110262881A (zh) * 2019-06-12 2019-09-20 深圳前海微众银行股份有限公司 一种Spark作业的提交方法及装置

Also Published As

Publication number Publication date
CN110262881A (zh) 2019-09-20

Similar Documents

Publication Publication Date Title
WO2020248708A1 (zh) 一种Spark作业的提交方法及装置
US11250025B2 (en) Methods and systems for bulk uploading of data in an on-demand service environment
US10453010B2 (en) Computer device, method, and apparatus for scheduling business flow
US10261853B1 (en) Dynamic replication error retry and recovery
WO2021237829A1 (zh) 一种实现代码仓库与计算服务整合的方法及系统
US8365193B2 (en) Recoverable asynchronous message driven processing in a multi-node system
US8166350B2 (en) Apparatus and method for persistent report serving
US9495199B2 (en) Management of bottlenecks in database systems
CN110806933B (zh) 一种批量任务处理方法、装置、设备和存储介质
CN112000455B (zh) 一种多线程任务处理方法、装置及电子设备
US11886284B2 (en) System and method for data redistribution in a database
JP2008015888A (ja) 負荷分散制御システム及び負荷分散制御方法
CN111160873B (zh) 基于分布式架构的跑批处理装置及方法
CN110377402A (zh) 业务数据处理方法、装置、存储介质及计算机设备
US20140304306A1 (en) Database Management System With Database Hibernation and Bursting
US20210073198A1 (en) Using persistent memory and remote direct memory access to reduce write latency for database logging
US9984139B1 (en) Publish session framework for datastore operation records
WO2019223174A1 (zh) 任务自动重跑方法、系统、计算机设备和存储介质
WO2020192065A1 (zh) 一种跨集群高可用的实现方法、装置、系统及设备
US9448827B1 (en) Stub domain for request servicing
WO2021118624A1 (en) Efficient transaction log and database processing
US20160328461A1 (en) Idling individually specified objects during data replication
CN113157411B (zh) 一种基于Celery的可靠可配置任务系统及装置
CN112199432A (zh) 一种基于分布式的高性能数据etl装置及控制方法
CN116719623A (zh) 作业调度方法、作业结果处理方法及其装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20823627

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20823627

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 21/03/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20823627

Country of ref document: EP

Kind code of ref document: A1