CN110262881A - 一种Spark作业的提交方法及装置 - Google Patents
一种Spark作业的提交方法及装置 Download PDFInfo
- Publication number
- CN110262881A CN110262881A CN201910504561.8A CN201910504561A CN110262881A CN 110262881 A CN110262881 A CN 110262881A CN 201910504561 A CN201910504561 A CN 201910504561A CN 110262881 A CN110262881 A CN 110262881A
- Authority
- CN
- China
- Prior art keywords
- spark
- node
- spark operation
- execution
- request
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring 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
-
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/546—Message passing systems or structures, e.g. queues
-
- 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/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明涉及金融科技领域,并公开了一种Spark作业的提交方法及装置,其中,方法包括:接收Spark作业的执行请求,根据执行请求,获取Yarn集群的节点黑名单,根据执行请求中Spark作业的作业参数、Yarn集群的节点黑名单,创建Spark引擎,通过Spark引擎将Spark作业发送至Yarn集群。该技术方案通过获取Yarn集群中故障节点,避免将Spark作业提交至故障节点,以实现Spark作业的高效执行。
Description
技术领域
本发明实施例涉及金融科技(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作业的提交方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构的示意图;
图2为本发明实施例提供的一种Spark作业的提交方法的流程示意图;
图3为本发明实施例提供的另一种Spark作业的提交方法的示意图;
图4为本发明实施例提供的一种Spark作业的提交装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在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 YarnClient引擎通过RPC(RemoteProcedure Call,远程过程调用)与对外服务入口200进行通信。Spark Yarn Client引擎在一些实施例中,又可以叫做Spark引擎。
对外服务入口200包含作业管理模块和执行队列,负责接收外部作业的提交,并跟踪作业的执行状态,当作业运行过程中出现异常,对外服务入口200可以根据作业的错误代码,自动调整作业参数设置,并进行自动重试提交。本实例中,该对外服务接口可接收HTTP请求或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问题、网络等原因丢失了执行节点等,结合Spark作业的常见错误,可以自动调整的作业参数包括但不限于Spark作业执行过程中的执行节点的个数、各执行节点的内存、网络延时参数、各任务(Task)的失败重试数。例如,当出现OOM时,可以调整各执行节点的内存大小,如将原来设置的2G内存提升1倍,即设置为2×2G内存后重新提交。
为了更好的解释本发明实施例,下面将在具体的实施场景下描述该Spark作业的提交流程,如图3所示,具体如下:
步骤301,外部系统发送Spark作业的执行请求。
执行请求可以是HTTP(HyperText Transfer Protocol,超文本传输协议)请求、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作业执行过程中的执行节点的个数、各所述执行节点的内存、网络延时参数、各任务的失败重试数。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述Spark作业的提交方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述Spark作业的提交方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
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任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910504561.8A CN110262881A (zh) | 2019-06-12 | 2019-06-12 | 一种Spark作业的提交方法及装置 |
PCT/CN2020/085217 WO2020248708A1 (zh) | 2019-06-12 | 2020-04-16 | 一种Spark作业的提交方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910504561.8A CN110262881A (zh) | 2019-06-12 | 2019-06-12 | 一种Spark作业的提交方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110262881A true CN110262881A (zh) | 2019-09-20 |
Family
ID=67917731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910504561.8A Pending CN110262881A (zh) | 2019-06-12 | 2019-06-12 | 一种Spark作业的提交方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110262881A (zh) |
WO (1) | WO2020248708A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111031123A (zh) * | 2019-12-10 | 2020-04-17 | 中盈优创资讯科技有限公司 | Spark任务的提交方法、系统、客户端及服务端 |
CN111767092A (zh) * | 2020-06-30 | 2020-10-13 | 深圳前海微众银行股份有限公司 | 作业执行方法、装置、系统及计算机可读存储介质 |
CN112000734A (zh) * | 2020-08-04 | 2020-11-27 | 中国建设银行股份有限公司 | 一种大数据处理方法和装置 |
WO2020248708A1 (zh) * | 2019-06-12 | 2020-12-17 | 深圳前海微众银行股份有限公司 | 一种Spark作业的提交方法及装置 |
CN112328403A (zh) * | 2020-11-25 | 2021-02-05 | 北京中天孔明科技股份有限公司 | 一种SparkContext的配置方法、装置及服务端 |
CN112486468A (zh) * | 2020-12-15 | 2021-03-12 | 恩亿科(北京)数据科技有限公司 | 基于spark内核的任务执行方法、系统和计算机设备 |
CN112540858A (zh) * | 2019-09-23 | 2021-03-23 | 成都华为技术有限公司 | 任务处理方法、服务器、客户端及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653928B (zh) * | 2016-02-03 | 2018-11-13 | 北京大学 | 一种面向大数据平台的拒绝服务检测方法 |
CN106980699B (zh) * | 2017-04-14 | 2020-02-14 | 中国科学院深圳先进技术研究院 | 一种数据处理平台和系统 |
US10983895B2 (en) * | 2018-06-05 | 2021-04-20 | Unravel Data Systems, Inc. | System and method for data application performance management |
CN110262881A (zh) * | 2019-06-12 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 一种Spark作业的提交方法及装置 |
-
2019
- 2019-06-12 CN CN201910504561.8A patent/CN110262881A/zh active Pending
-
2020
- 2020-04-16 WO PCT/CN2020/085217 patent/WO2020248708A1/zh active Application Filing
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020248708A1 (zh) * | 2019-06-12 | 2020-12-17 | 深圳前海微众银行股份有限公司 | 一种Spark作业的提交方法及装置 |
CN112540858A (zh) * | 2019-09-23 | 2021-03-23 | 成都华为技术有限公司 | 任务处理方法、服务器、客户端及系统 |
CN112540858B (zh) * | 2019-09-23 | 2023-10-27 | 华为云计算技术有限公司 | 任务处理方法、服务器、客户端及系统 |
CN111031123A (zh) * | 2019-12-10 | 2020-04-17 | 中盈优创资讯科技有限公司 | Spark任务的提交方法、系统、客户端及服务端 |
CN111767092A (zh) * | 2020-06-30 | 2020-10-13 | 深圳前海微众银行股份有限公司 | 作业执行方法、装置、系统及计算机可读存储介质 |
WO2022001209A1 (zh) * | 2020-06-30 | 2022-01-06 | 深圳前海微众银行股份有限公司 | 作业执行方法、装置、系统及计算机可读存储介质 |
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内核的任务执行方法、系统和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020248708A1 (zh) | 2020-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110262881A (zh) | 一种Spark作业的提交方法及装置 | |
CN106844198B (zh) | 一种分布式调度自动化测试平台及方法 | |
CN105389209B (zh) | 一种异步批量任务处理方法及系统 | |
CN112162865B (zh) | 服务器的调度方法、装置和服务器 | |
CN108536532B (zh) | 一种批量任务处理方法及系统 | |
US8171474B2 (en) | System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface | |
US8538793B2 (en) | System and method for managing real-time batch workflows | |
CN106126354A (zh) | 一种异步批量处理方法及系统 | |
CN107943555A (zh) | 一种云计算环境下的大数据存储和处理平台及处理方法 | |
CN107656782A (zh) | 一种基于事件的流程处理方法及系统 | |
CN110806933B (zh) | 一种批量任务处理方法、装置、设备和存储介质 | |
CN112882813A (zh) | 任务调度方法、装置、系统及电子设备 | |
CN109347974B (zh) | 提高在线服务质量和集群资源利用率的混合调度系统 | |
US11422856B2 (en) | Adaptive program task scheduling to blocking and non-blocking queues | |
CN106209482A (zh) | 一种数据中心监控方法及系统 | |
CN107918556A (zh) | 一种定时任务在多个服务器的并行执行方法和装置 | |
CN111160873B (zh) | 基于分布式架构的跑批处理装置及方法 | |
CN110611707B (zh) | 一种任务调度的方法及装置 | |
CN105872068A (zh) | 一种云平台以及基于该云平台的自动化运检方法 | |
CN106557369A (zh) | 一种多线程的管理方法及系统 | |
CN109947532A (zh) | 一种教育云平台中的大数据任务调度方法 | |
CN106371903B (zh) | 飞机机载可信计算平台的任务调度方法 | |
US20170078049A1 (en) | Freshness-sensitive message delivery | |
CN109426550A (zh) | 资源的调度方法及设备 | |
US20180039520A1 (en) | Methods and Nodes for Scheduling Data Processing |
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 |