CN111367591B - Spark任务处理方法及装置 - Google Patents

Spark任务处理方法及装置 Download PDF

Info

Publication number
CN111367591B
CN111367591B CN202010236171.XA CN202010236171A CN111367591B CN 111367591 B CN111367591 B CN 111367591B CN 202010236171 A CN202010236171 A CN 202010236171A CN 111367591 B CN111367591 B CN 111367591B
Authority
CN
China
Prior art keywords
task
spark
historical
determining
processing data
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
Application number
CN202010236171.XA
Other languages
English (en)
Other versions
CN111367591A (zh
Inventor
何晓政
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010236171.XA priority Critical patent/CN111367591B/zh
Publication of CN111367591A publication Critical patent/CN111367591A/zh
Application granted granted Critical
Publication of CN111367591B publication Critical patent/CN111367591B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种Spark任务处理方法及装置,该Spark任务处理方法包括:获取用户提交的Spark任务;根据所述用户的历史Spark任务处理数据确定所述Spark任务对应的任务执行参数;将所述Spark任务发送到预设的SparkSession对象,以使所述SparkSession对象根据所述任务执行参数处理所述Spark任务。本发明提高了Spark任务处理的时效性和处理效率。

Description

Spark任务处理方法及装置
技术领域
本发明涉及大数据领域,具体而言,涉及一种Spark任务处理方法及装置。
背景技术
信息技术与经济社会的交汇融合引发了数据的迅猛增长,数据已成为国家基础性战略资源,大数据正日益对全球生产、流通、分配、消费活动以及经济运行机制、社会生活方式和国家治理能力产生重要影响。而对于数据的存储和处理,Apache Spark作为大规模数据处理的快速通用的计算引擎,在大数据领域占据了很重要的地位。它扩展了MapReduce模型,并且基于内存已经形成了一个高速发展应用广泛的生态系统,帮助各行各业基于大数据完成工作。
现有的Spark任务可以通过离线批量计算提交到Spark集群中,然后Spark集群基于资源管理工具(例如YARN)对任务进行统一处理。这种任务处理方法适用于生产批量作业环境,便于作业统一提交、统一管理,缺点是不能实时反馈任务运行结果,同时每次提交任务都需要启动一次Driver进程,对于高时效的作业来讲,启动Driver的时间将大大影响任务的处理效率。
发明内容
本发明为了解决上述背景技术中的至少一个技术问题,提出了一种Spark任务处理方法及装置。
为了实现上述目的,根据本发明的一个方面,提供了一种Spark任务处理方法,该方法包括:
获取用户提交的Spark任务;
根据所述用户的历史Spark任务处理数据确定所述Spark任务对应的任务执行参数;
将所述Spark任务发送到预设的SparkSession对象,以使所述SparkSession对象根据所述任务执行参数处理所述Spark任务。
可选的,所述根据所述用户的历史Spark任务处理数据确定所述Spark任务对应的任务执行参数,具体包括:
确定所述Spark任务的任务类型;
从所述用户的所有历史Spark任务处理数据中确定出所述任务类型对应的历史Spark任务处理数据;
根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务执行参数。
可选的,所述根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务执行参数,具体包括:
根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务模型;
根据所述任务模型确定所述任务类型对应的任务执行参数。
可选的,所述历史Spark任务处理数据包括:各历史Spark任务的任务类型、各历史Spark任务的任务执行参数以及各历史Spark任务的任务执行情况。
可选的,该Spark任务处理方法还包括:
若不存在所述用户对应的历史Spark任务处理数据,则根据所述Spark任务访问的数据信息生成所述Spark任务对应的任务执行参数。
可选的,所述将所述Spark任务发送到预设的SparkSession对象,具体包括:
根据预设的多个SparkSession对象的运行状态将所述Spark任务分配给所述多个SparkSession对象中的其中一个SparkSession对象。
可选的,所述任务执行参数包括:执行器数量、执行器内存以及线程数量中的至少一个。
为了实现上述目的,根据本发明的另一方面,提供了一种Spark任务处理装置,该装置包括:
任务获取单元,用于获取用户提交的Spark任务;
第一任务执行参数确定单元,用于根据所述用户的历史Spark任务处理数据确定所述Spark任务对应的任务执行参数;
任务处理单元,用于将所述Spark任务发送到预设的SparkSession对象,以使所述SparkSession对象根据所述任务执行参数处理所述Spark任务。
可选的,所述第一任务执行参数确定单元,包括:
任务类型确定模块,用于确定所述Spark任务的任务类型;
历史Spark任务处理数据筛选模块,用于从所述用户的所有历史Spark任务处理数据中确定出所述任务类型对应的历史Spark任务处理数据;
参数确定模块,用于根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务执行参数。
可选的,所述参数确定模块,包括:
模型生成子模块,用于根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务模型;
自调优子模块,用于根据所述任务模型确定所述任务类型对应的任务执行参数。
可选的,该Spark任务处理装置还包括:
第二任务执行参数确定单元,用于在不存在所述用户对应的历史Spark任务处理数据时根据所述Spark任务访问的数据信息生成所述Spark任务对应的任务执行参数。
可选的,所述任务处理单元,具体用于根据预设的多个SparkSession对象的运行状态将所述Spark任务分配给所述多个SparkSession对象中的其中一个SparkSession对象。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述Spark任务处理方法中的步骤。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述Spark任务处理方法中的步骤。
本发明的有益效果为:本发明通过设置多个SparkSession对象,在处理Spark任务时可以将任务分配到某一个SparkSession上,不需要启动Driver进程,SparkSession对象可以直接开始处理任务,从而提高了任务处理的时效性和处理效率。此外本发明根据用户的历史Spark任务处理数据确定出当前Spark任务对应的任务执行参数,进一步提高了任务处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明第一实施例Spark任务处理方法的流程图;
图2是本发明实施例确定Spark任务对应的任务执行参数的第一流程图;
图3是本发明实施例确定Spark任务对应的任务执行参数的第二流程图;
图4是本发明第二实施例Spark任务处理方法的流程图;
图5是本发明实施例Spark任务处理装置的结构框图;
图6是本发明实施例第一任务执行参数确定单元的结构框图;
图7是本发明实施例计算机设备示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明提供了一种Spark任务处理方法,将优化Driver的启动时间,提升高时效大数据量的Spark任务的执行性能。同时,本发明基于Spark集群的不同用户进行任务建模并进行Spark任务自调优确定任务执行参数,缩短任务执行时间。
图1是本发明第一实施例Spark任务处理方法的流程图,如图1所示,本实施例的Spark任务处理方法包括步骤S101至步骤S103。
步骤S101,获取用户提交的Spark任务。
在本发明实施例中,本步骤接收Spark集群中的集群用户提交的Spark任务。
在本发明可选实施例中,在接收到用户提交的Spark任务后,还需要对用户的访问权限进行验证。如果当前用户没有权限提交Spark任务或者当前用户没有访问提交的Spark任务中所要访问的相关数据的权限,则抛弃该Spark任务。
步骤S102,根据所述用户的历史Spark任务处理数据确定所述Spark任务对应的任务执行参数。
在本发明实施例中,若该用户存在历史Spark任务处理数据,即用户非第一次提交Spark任务时,本步骤根据用户的历史Spark任务处理数据确定当前Spark任务对应的任务执行参数。
在本发明可选实施例中,所述任务执行参数可以包括:执行器数量、执行器内存以及线程数量等参数。
在本发明可选实施例中,所述历史Spark任务处理数据包括:各历史Spark任务的任务类型、各历史Spark任务的任务执行参数以及各历史Spark任务的任务执行情况。本步骤可以根据当前Spark任务的任务类型从历史Spark任务处理数据中查找出相同任务类型的历史Spark任务处理数据,并根据相同任务类型的历史Spark任务的任务执行参数以及任务执行情况确定该任务类型的任务执行参数,将该任务类型的任务执行参数作为当前Spark任务的任务执行参数。
在本发明可选实施例中,若不存在所述用户对应的历史Spark任务处理数据,即用户第一次提交Spark任务,则根据所述Spark任务访问的数据信息生成所述Spark任务对应的任务执行参数。所述Spark任务访问的数据信息包括:访问的数据类型、访问的数据量以及数据结构等信息。
步骤S103,将所述Spark任务发送到预设的SparkSession对象,以使所述SparkSession对象根据所述任务执行参数处理所述Spark任务。
本发明预先创建多个SparkSession对象,集群用户可以提交Spark任务到SparkSession对象,然后由SparkSession对象对Spark任务进行处理。在没有任务执行时,常驻式的SparkSession对象将作为空闲态启动在集群的节点上,等待分配任务,当将Spark任务分配任务到某一个SparkSession对象上时,不需要启动Driver进程,SparkSession可以直接开始处理任务,从而提升高时效作任务的运行效率。同时,不同的集群用户可以提交Spark任务到同一个SparkSession对象上,提高了SparkSession的复用性。并且,集群可以根据需求及集群规模,增加或减少SparkSession对象的数量,提高集群的整体性能。
在本发明实施例中,本步骤根据当前各个SparkSession对象的负载情况,将Spark任务分配给负载较小的一个SparkSession对象。然后由该SparkSession对象根据上述任务执行参数向集群申请CPU、内存资源,用于执行Spark任务。在任务处理期间,记录并存储该Spark任务的执行情况,包括GC时间、各个task的执行情况等信息,用于后续对任务执行参数进行更新。
由此可见,本发明通过设置多个SparkSession对象,在处理Spark任务时可以将任务分配到某一个SparkSession上,不需要启动Driver进程,SparkSession对象可以直接开始处理任务,从而提高了任务处理的时效性和处理效率。此外本发明根据用户的历史Spark任务处理数据确定出当前Spark任务对应的任务执行参数,进一步提高了任务处理的效率。
图2是本发明实施例确定Spark任务对应的任务执行参数的第一流程图,如图2所示,在本发明可选实施例中,上述步骤S102的确定Spark任务对应的任务执行参数具体包括步骤S201至步骤S203。
步骤S201,确定所述Spark任务的任务类型。
在本发明可选实施例中,任务类型可以包括批量处理以及灵活查询,还可以在此基础上继续细分,比如说批量处理包括处理数据湖的数据,或者处理私有数据,灵活查询包括查询大数据量,或者点查等。
步骤S202,从所述用户的所有历史Spark任务处理数据中确定出所述任务类型对应的历史Spark任务处理数据。
在本发明可选实施例中,历史Spark任务处理数据包括:各历史Spark任务的任务类型、各历史Spark任务的任务执行参数以及各历史Spark任务的任务执行情况。本步骤从用户的所有历史Spark任务处理数据中筛选出与当前Spark任务的任务类型相同的历史Spark任务处理数据。
步骤S203,根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务执行参数。
本步骤根据与当前Spark任务的任务类型相同的历史Spark任务的任务执行参数以及任务执行情况确定该任务类型的任务执行参数。
在本发明可选实施例中,任务执行情况包括:访问的数据、数据量(如果是hive表,还会记录访问的字段,sql的复杂度、join方式等信息)、任务执行时间(粒度到单个执行器,即单个执行器中每个线程的执行情况,包括执行时间、处理的tasks、Garbage Collection情况)等信息。
本步骤可以根据某一个任务类型的历史Spark任务的任务执行情况以及历史Spark任务的任务执行参数采用自调优的方法对任务执行参数进行优化,得到该任务类型理论上最优的任务执行参数。后续用户执行完其他Spark任务后,Spark任务的任务处理数据将会加入到历史Spark任务处理数据中,进而不断的对该任务类型理论上最优的任务执行参数进行调优。该任务类型的Spark任务处理的数量越多,该任务类型的任务执行参数将会越准确。
在本发明可选实施例中,本发明根据某一个任务类型的历史Spark任务的任务执行情况以及历史Spark任务的任务执行参数采用自调优的方法对任务执行参数进行优化。举例说明可以为,历史Spark任务的任务执行情况中包括Garbage Collection时间,如果该时间较长,说明执行器内存不足,则应当适当提高对应的历史Spark任务的任务执行参数中执行器内存这一参数,如果时间较短,可以适当提高对应的历史Spark任务的任务执行参数中线程数(executor-cores)这一参数。如果单个线程需要处理的tasks数目多,说明执行器个数不足,可以适当提高对应的历史Spark任务的任务执行参数中执行器数量(num-executors)这一参数;如果单个线程处理的task数目少,甚至有CPU空闲的情况,可以适当减少线程数量(num-executors)这一参数。
图3是本发明实施例确定Spark任务对应的任务执行参数的第二流程图,如图3所示,在本发明可选实施例中,上述步骤S203的根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务执行参数具体包括步骤S301至步骤S302。
步骤S301,根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务模型。
步骤S302,根据所述任务模型确定所述任务类型对应的任务执行参数。
在本发明实施例中,本发明针对用户的所有历史Spark任务处理数据根据历史Spark任务的任务类型进行分类,得到各任务类型对应的历史Spark任务处理数据。进而根据各任务类型对应的历史Spark任务处理数据总结出各任务类型的典型任务模型,某一任务类型的典型任务模型包括该任务类型的典型任务执行情况及典型任务执行参数。进而可以根据任务类型的典型任务执行情况及典型任务执行参数采用自调优的方法对任务执行参数进行优化,得到该任务类型理论上最优的任务执行参数作为当前Spark任务的任务执行参数。
在本发明可选实施例中,可以根据各任务类型对应的历史Spark任务处理数据采用加权计算的方法确定出各任务类型的典型任务模型。
图4是本发明第二实施例Spark任务处理方法的流程图,如图4所示,在本发明的可选实施例中,本发明的Spark任务处理方法具体包括步骤S410至步骤S415。
S401步骤:集群用户提交Spark任务。
S402步骤:判断当前用户是否有权限提交Spark任务,如果没有权限,则执行S403步骤;如果有权限,则执行S404步骤。
S403步骤:当前用户无权限提交Spark任务,向用户发送权限认证异常信息。
S404步骤:读取Spark任务相关表数据的元数据信息。
S405步骤:判断用户是否有访问任务中数据的权限。如果没有权限,则执行S406步骤;如果有权限,则执行S407步骤。
S406步骤:当前用户无权限访问数据,向用户发送权限认证异常信息。
S407步骤:无认证、权限异常,接收Spark任务,准备执行。
S408步骤:判断用户是否首次提交当前任务,如果是首次提交,即之前当前用户没有提交过类似任务,则执行S409步骤;如果不是首次提交,即之前当前用户提交过类似任务,则执行S410步骤。
S409步骤:首次提交的任务,需要根据用户访问的数据类型、数据量、数据结构等信息确定任务执行参数,任务执行参数将提供给S413步骤,作为Spark任务的执行参数。
S410步骤:根据用户的历史Spark任务处理数据确定Spark任务对应的任务执行参数,任务执行参数将提供给S413步骤,作为Spark任务的执行参数。
S411步骤:判断Spark集群中是否有空闲的SparkSession对象,如果没有空闲的SparkSession对象,则执行S412步骤;如果有,则执行S413步骤。
S412步骤:创建SparkSession对象,需判断SparkSession对象数是否达到集群上限,如果没有达到,则创建,如果达到了,则等待。其他任务执行完成后,释放空余的SparkSession,然后依照FIFO分配给等待的Spark任务。
S413步骤:SparkSession对象执行Spark任务,根据Spark任务对应的任务执行参数,向集群申请CPU、内存资源,用于执行Spark任务。同时,记录任务执行期间的运行情况,包括GC时间、各个task的执行情况等信息。
S414步骤:根据S413步骤记录的任务执行期间的相关信息,对任务模型进行优化,包括但不限于Spark任务的参数配置,如果GC时间长,就适当调高内存参数,如果单个task执行缓慢,则适当调高处理器数量。
S415步骤:当前Spark任务执行完成,向用户发送通知信息。
由以上实施例可以看出,本发明的Spark任务处理方法至少实现了以下有益效果:
1、通过设置多个SparkSession对象,在处理Spark任务时可以将任务分配到某一个SparkSession对象上,不需要启动Driver进程,SparkSession对象可以直接开始处理任务,从而提高了任务处理的时效性和处理效率。
2、采用自调优方法根据用户的历史Spark任务处理数据确定出当前Spark任务对应的任务执行参数,能够提升Spark任务的执行效率,优化了任务配置,减少了人为干预。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
基于同一发明构思,本发明实施例还提供了一种Spark任务处理装置,可以用于实现上述实施例所描述的Spark任务处理方法,如下面的实施例所述。由于Spark任务处理装置解决问题的原理与Spark任务处理方法相似,因此Spark任务处理装置的实施例可以参见Spark任务处理方法的实施例,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是本发明实施例Spark任务处理装置的结构框图,如图5所示,本发明实施例Spark任务处理装置包括:任务获取单元1、第一任务执行参数确定单元2以及任务处理单元3。
任务获取单元1,用于获取用户提交的Spark任务。
第一任务执行参数确定单元2,用于根据所述用户的历史Spark任务处理数据确定所述Spark任务对应的任务执行参数。
在本发明可选实施例中,任务执行参数包括:执行器数量、执行器内存以及线程数量中的至少一个。
任务处理单元3,用于将所述Spark任务发送到预设的SparkSession对象,以使所述SparkSession对象根据所述任务执行参数处理所述Spark任务。
在本发明可选实施例中,任务处理单元3具体用于根据预设的多个SparkSession对象的运行状态将所述Spark任务分配给所述多个SparkSession对象中的其中一个SparkSession对象。
图6是本发明实施例第一任务执行参数确定单元的结构框图,如图6所示,第一任务执行参数确定单元2具体包括:任务类型确定模块201、历史Spark任务处理数据筛选模块202和参数确定模块203。
任务类型确定模块201,用于确定所述Spark任务的任务类型。
历史Spark任务处理数据筛选模块202,用于从所述用户的所有历史Spark任务处理数据中确定出所述任务类型对应的历史Spark任务处理数据。
参数确定模块203,用于根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务执行参数。
在本发明可选实施例中,上述参数确定模块203具体包括:
模型生成子模块,用于根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务模型;
自调优子模块,用于根据所述任务模型确定所述任务类型对应的任务执行参数。
在本发明可选实施例中,所述历史Spark任务处理数据包括:各历史Spark任务的任务类型、各历史Spark任务的任务执行参数以及各历史Spark任务的任务执行情况。
在本发明可选实施例中,该Spark任务处理装置还包括:
第二任务执行参数确定单元,用于在不存在所述用户对应的历史Spark任务处理数据时根据所述Spark任务访问的数据信息生成所述Spark任务对应的任务执行参数。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图7所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。
上述计算机设备具体细节可以对应参阅上述实施例中对应的相关描述和效果进行理解,此处不再赘述。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述Spark任务处理方法中的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种Spark任务处理方法,其特征在于,包括:
获取用户提交的Spark任务;
根据所述用户的历史Spark任务处理数据确定所述Spark任务对应的任务执行参数;
将所述Spark任务发送到预设的SparkSession对象,以使所述SparkSession对象根据所述任务执行参数处理所述Spark任务;
所述将所述Spark任务发送到预设的SparkSession对象,以使所述SparkSession对象根据所述任务执行参数处理所述Spark任务,具体包括:
根据预设的多个SparkSession对象的运行状态将所述Spark任务分配给所述多个SparkSession对象中的其中一个SparkSession对象,以使分配到所述Spark任务的SparkSession对象根据所述任务执行参数向Spark集群申请CPU和内存资源来执行所述Spark任务,并在任务处理期间,记录并存储所述Spark任务的任务执行情况,用于后续对任务执行参数进行更新。
2.根据权利要求1所述的Spark任务处理方法,其特征在于,所述根据所述用户的历史Spark任务处理数据确定所述Spark任务对应的任务执行参数,具体包括:
确定所述Spark任务的任务类型;
从所述用户的所有历史Spark任务处理数据中确定出所述任务类型对应的历史Spark任务处理数据;
根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务执行参数。
3.根据权利要求2所述的Spark任务处理方法,其特征在于,所述根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务执行参数,具体包括:
根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务模型;
根据所述任务模型确定所述任务类型对应的任务执行参数。
4.根据权利要求1至3任意之一所述的Spark任务处理方法,其特征在于,所述历史Spark任务处理数据包括:各历史Spark任务的任务类型、各历史Spark任务的任务执行参数以及各历史Spark任务的任务执行情况。
5.根据权利要求1所述的Spark任务处理方法,其特征在于,还包括:
若不存在所述用户对应的历史Spark任务处理数据,则根据所述Spark任务访问的数据信息生成所述Spark任务对应的任务执行参数。
6.根据权利要求1所述的Spark任务处理方法,其特征在于,所述任务执行参数包括:执行器数量、执行器内存以及线程数量中的至少一个。
7.一种Spark任务处理装置,其特征在于,包括:
任务获取单元,用于获取用户提交的Spark任务;
第一任务执行参数确定单元,用于根据所述用户的历史Spark任务处理数据确定所述Spark任务对应的任务执行参数;
任务处理单元,用于将所述Spark任务发送到预设的SparkSession对象,以使所述SparkSession对象根据所述任务执行参数处理所述Spark任务;
所述任务处理单元,具体用于根据预设的多个SparkSession对象的运行状态将所述Spark任务分配给所述多个SparkSession对象中的其中一个SparkSession对象,以使分配到所述Spark任务的SparkSession对象根据所述任务执行参数向Spark集群申请CPU和内存资源来执行所述Spark任务,并在任务处理期间,记录并存储所述Spark任务的任务执行情况,用于后续对任务执行参数进行更新。
8.根据权利要求7所述的Spark任务处理装置,其特征在于,所述第一任务执行参数确定单元,包括:
任务类型确定模块,用于确定所述Spark任务的任务类型;
历史Spark任务处理数据筛选模块,用于从所述用户的所有历史Spark任务处理数据中确定出所述任务类型对应的历史Spark任务处理数据;
参数确定模块,用于根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务执行参数。
9.根据权利要求8所述的Spark任务处理装置,其特征在于,所述参数确定模块,包括:
模型生成子模块,用于根据所述任务类型对应的历史Spark任务处理数据确定所述任务类型对应的任务模型;
自调优子模块,用于根据所述任务模型确定所述任务类型对应的任务执行参数。
10.根据权利要求7至9任意之一所述的Spark任务处理装置,其特征在于,所述历史Spark任务处理数据包括:各历史Spark任务的任务类型、各历史Spark任务的任务执行参数以及各历史Spark任务的任务执行情况。
11.根据权利要求7所述的Spark任务处理装置,其特征在于,还包括:
第二任务执行参数确定单元,用于在不存在所述用户对应的历史Spark任务处理数据时根据所述Spark任务访问的数据信息生成所述Spark任务对应的任务执行参数。
12.根据权利要求7所述的Spark任务处理装置,其特征在于,所述任务执行参数包括:执行器数量、执行器内存以及线程数量中的至少一个。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的方法。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序在计算机处理器中执行时实现如权利要求1至6任意一项所述的方法。
CN202010236171.XA 2020-03-30 2020-03-30 Spark任务处理方法及装置 Active CN111367591B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010236171.XA CN111367591B (zh) 2020-03-30 2020-03-30 Spark任务处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010236171.XA CN111367591B (zh) 2020-03-30 2020-03-30 Spark任务处理方法及装置

Publications (2)

Publication Number Publication Date
CN111367591A CN111367591A (zh) 2020-07-03
CN111367591B true CN111367591B (zh) 2024-01-30

Family

ID=71209264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010236171.XA Active CN111367591B (zh) 2020-03-30 2020-03-30 Spark任务处理方法及装置

Country Status (1)

Country Link
CN (1) CN111367591B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760489B (zh) * 2020-09-21 2024-05-17 北京沃东天骏信息技术有限公司 一种资源配置方法和装置
CN113157538B (zh) * 2021-02-02 2023-04-18 西安天和防务技术股份有限公司 Spark运行参数的确定方法、装置、设备和存储介质
CN113688602A (zh) * 2021-10-26 2021-11-23 中电云数智科技有限公司 一种任务处理方法以及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255689A (zh) * 2018-01-11 2018-07-06 哈尔滨工业大学 一种基于历史任务分析的Apache Spark应用自动化调优方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681667B2 (en) * 2017-07-30 2023-06-20 International Business Machines Corporation Persisting distributed data sets into eventually consistent storage systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255689A (zh) * 2018-01-11 2018-07-06 哈尔滨工业大学 一种基于历史任务分析的Apache Spark应用自动化调优方法

Also Published As

Publication number Publication date
CN111367591A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
CN111367591B (zh) Spark任务处理方法及装置
CN110908788B (zh) 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质
Wu et al. Energy and migration cost-aware dynamic virtual machine consolidation in heterogeneous cloud datacenters
CN106406987B (zh) 一种集群中的任务执行方法及装置
US11474874B2 (en) Systems and methods for auto-scaling a big data system
US10114682B2 (en) Method and system for operating a data center by reducing an amount of data to be processed
CN108256115B (zh) 一种面向SparkSql的HDFS小文件实时合并实现方法
CN105988872A (zh) 一种cpu资源分配的方法、装置及电子设备
CN112328378B (zh) 任务调度方法、计算机设备及存储介质
CN107015849B (zh) 定时任务的提醒方法及装置
Petrov et al. Adaptive performance model for dynamic scaling Apache Spark Streaming
CN110569252B (zh) 一种数据处理系统及方法
CN114077602B (zh) 数据迁移方法和装置、电子设备、存储介质
JP2014038616A (ja) 大量データのインデックス構築システム及びその構築方法
US20210406053A1 (en) Rightsizing virtual machine deployments in a cloud computing environment
CN114816709A (zh) 任务调度方法、装置、服务器及可读存储介质
Dai et al. Research and implementation of big data preprocessing system based on Hadoop
CN107038072B (zh) 基于Hadoop系统的任务调度方法和装置
CN116974994A (zh) 一种基于集群的高效能文件协作系统
CN109684051B (zh) 一种混合式大数据任务异步提交的方法和系统
Du et al. A combined priority scheduling method for distributed machine learning
US10866833B2 (en) Method and appratus for implementing microkernel architecture of industrial server
CN113010290A (zh) 一种任务管理方法、装置、设备及存储介质
Raju et al. A Comparative Study of Spark Schedulers' Performance
CN111782688A (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