CN117573368A - 一种spark计算调度的方法、装置、电子设备及介质 - Google Patents
一种spark计算调度的方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN117573368A CN117573368A CN202311753831.1A CN202311753831A CN117573368A CN 117573368 A CN117573368 A CN 117573368A CN 202311753831 A CN202311753831 A CN 202311753831A CN 117573368 A CN117573368 A CN 117573368A
- Authority
- CN
- China
- Prior art keywords
- task
- spark
- splitting
- data
- executing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004364 calculation method Methods 0.000 title claims abstract description 21
- 238000013515 script Methods 0.000 claims abstract description 42
- 238000003860 storage Methods 0.000 claims abstract description 21
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000009826 distribution Methods 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请实施例提供一种spark计算调度的方法、装置、电子设备及介质,方法包括:分析总体资源情况以及执行spark任务所需的资源情况,并根据总体资源情况以及执行spark任务所需的资源情况确定任务拆分的策略;根据任务拆分的策略,分别对各条spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令;将具有不同范围参数的spark任务命令进行任务调度并编写成脚本,根据业务需要进行脚本的执行。本申请实施例解决了spark计算存储大批量的数据到Hbase时任务执行过慢甚至失败的问题,通过任务拆分的策略,实现计算存储任务在一定资源下可正常运行、高效完成计算和存储。
Description
技术领域
本申请实施例涉及大数据技术领域,尤其涉至一种spark计算调度的方法、装置、电子设备及介质。
背景技术
随着大数据技术的发展,数据业务需求旺盛,许多企业为了实现自身的管理决策、外部拓客、精准营销等需求都在进行一系列的大数据统计计算。很多企业选择使用大数据流行框架spark,经过计算后的数据结果需要保存到Hbase等数据库中。但是由于企业运业务计算复杂多样,部分业务需要日维度计算,大数据集群资源队列分配不灵活,受网络带宽、磁盘I/O以及内存CPU限制,在进行大数据任务计算时集群队列资源临时无法扩大调整,批量处理海量数据到hbase时会出现任务耗时长、任务失败,同时会导致其它任务延迟或得不到执行,数据无法保存,业务服务不能正常使用的情况。
因此,如何通实现大数据流行框架spark下的资源调度分配成为亟待解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种spark计算调度的方法、装置、电子设备及介质,以至少部分解决上述问题。
根据本申请实施例的第一方面,提供了一种spark计算调度的方法,所述方法包括:分析总体资源情况以及执行spark任务所需的资源情况,并根据所述总体资源情况以及执行所述spark任务所需的资源情况确定任务拆分的策略;根据所述任务拆分的策略,分别对各条所述spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令;将所述具有不同范围参数的所述spark任务命令进行任务调度并编写成脚本,根据业务需要进行所述脚本的执行。
根据本申请实施例的第二方面,提供了一种spark计算调度的装置,所述装置包括:拆分评估模块,用于分析总体资源情况以及执行任务所需的资源情况,并根据所述总体资源情况以及所述执行任务所需的资源情况确定任务拆分的策略;调度管理模块,用于根据所述任务拆分的策略,分别对各条spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令;任务执行模块,用于将所述具有不同范围参数的所述spark任务命令进行任务调度并编写成脚本,根据业务需要进行所述脚本的执行。
根据本申请实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行如第一方面所述的方法对应的操作。
根据本申请实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法。
本申请实施例的方案中,根据总体资源情况以及执行任务所需的资源情况,确定任务拆分的策略,并根据任务拆分的策略,分别对各条spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令,将获得的spark任务命令进行任务调度并编写成脚本,根据业务需要进行脚本的执行。本申请实施例解决了spark计算存储大批量的数据到Hbase时任务执行过慢甚至失败的问题,通过任务拆分的策略,实现计算存储任务在一定资源下可正常运行、高效完成计算和存储。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为根据本申请的一个实施例的一种spark计算调度的方法的步骤流程图。
图2为根据本申请的另一个实施例的一种spark计算调度的方法的步骤S3的步骤流程图。
图3为根据本申请的再一个实施例的一种spark计算调度的方法的步骤流程图;
图4为根据本申请的一个实施例的一种spark计算调度的装置的示意性框图。
图5为根据本申请的一个实施例的电子设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、详细地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
应当理解,本披露的权利要求、说明书至附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”至“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以至所有可能组合,并且包括这些组合。
Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。Spark是一种与Hadoop相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使Spark在某些工作负载方面表现得更加优越,换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark是在Scala语言中实现的,它将Scala用作其应用程序框架。与Hadoop不同,Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集。
HBase是一个分布式的、面向列的开源数据库,该技术来源于Fay Chang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
大数据流行框架spark将经过计算后的数据结果需要保存到Hbase等数据库中。但是由于企业运业务计算复杂多样,部分业务需要日维度计算,大数据集群资源队列分配不灵活,受网络带宽、磁盘I/O以及内存CPU限制,在进行大数据任务计算时集群队列资源临时无法扩大调整,批量处理海量数据到hbase时会出现任务耗时长、任务失败,同时会导致其它任务延迟或得不到执行,数据无法保存,业务服务不能正常使用的情况。
针对上述情况通常的处理方法是调大该计算任务运行时参数,包括执行主机的数量和内存,增大任务的分区数让数据更均匀分布的每个任务中。但是大批量数据的写入还有网络和磁盘I/O的影响,会导致写入数据时间过长;如果Hbase没有设计合理的行键(rowkey)以及预分区,也会产生巨大的性能问题,拖慢任务,严重时会导致任务失败。而且,预分区需要了解全部数据行键(rowkey)的整体分布以及Hbase的吞吐能力,很容易设计的分区与实际的数据行键(rowkey)不符合,导致数据倾斜,同时也不能灵活调整任务执行情况。
为了解决上述问题,根据总体资源情况以及执行任务所需的资源情况,确定任务拆分的策略,并根据任务拆分的策略,分别对各条spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令,将获得的spark任务命令进行任务调度并编写成脚本,根据业务需要进行脚本的执行。本申请实施例解决了spark计算存储大批量的数据到Hbase时任务执行过慢甚至失败的问题,通过任务拆分的策略,实现计算存储任务在一定资源下可正常运行、高效完成计算和存储。
图1示出了本申请的一实施例的一种spark计算调度的方法,该方法包括:
步骤S1:分析总体资源情况以及执行任务所需的资源情况,并根据总体资源情况以及执行任务所需的资源情况确定任务拆分的策略。
在本申请实施例一些具体实现中,总体资源情况为大数据集群队列资源情况,大数据集群队列资源情况包括:CPU核数、内存、活跃机器数。
本申请实施例通过资源调度程序评估可用的总体资源情况。具体地,通过命令和yarn WebUI界面查看大数据集群队列总体资源情况,计算出分配给spark任务运行所需的总体资源。
在本申请实施例一些具体实现中,执行spark任务所需的资源情况包括:待计算的数据量大小、单位时间内存储的数据量以及执行任务所需存储的数据量。
具体地,预估待执行spark任务所需的资源情况,评估单位时间内存储的数据量及该业务总共需要存储的数据量。例如,每天要存储30亿条记录一共100G的数据定时存储导入,以保证总体资源大于执行spark任务所需的资源。
在本申请实施例一些具体实现中,任务拆分策略包括下述至少其一:
根据固定数据量进行拆分、根据业务分组进行拆分、根据集群可用内存一次性计算的最大数据量进行拆分、根据数据分布动态设置分割点进行拆分。
示例性地,根据固定数据量进行拆分,包括:根据固定数据量条数或者固定数据大小进行拆分;根据业务分组进行拆分,包括:根据不同地区的数据进行拆分;根据集群可用内存一次性计算的最大数据量进行拆分,包括:根据集群可用内存一次性计算的最大数据量拆分后,顺序执行;根据数据分布动态设置分割点进行拆分,包括:设置不同时间范围,查看每个时间范围内的数据量。
步骤S2:根据任务拆分的策略,分别对各条spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令。
在本申请实施例一些具体实现中,步骤S2,还包括:
在程序中将具有不同范围的参数值的spark任务命令的外部传递参数的范围设置成开始标识和结束标志,并将开始标志和结束标志作为条件读取数据。
具体地,每条spark任务命令后面都有不同范围的参数值。在编写的计算程序中,把外部传递参数的范围设置成开始标识和结束标志这两个变量,再把开始标识和结束标志这两个变量作为条件读取数据。
此外,开始标识和结束标志这两个变量也可以设置默认值,当无开始标识和结束标志这两个变量时,读取的是该条spark任务命令对应的全部数据。
步骤S3:将具有不同范围参数的spark任务命令进行任务调度并编写成脚本,根据业务需要进行脚本的执行。
在本申请实施例一些具体实现中,参见图2,步骤S3,包括:
步骤S31:将具有不同范围参数的spark任务命令进行任务调度并编写成脚本,其中,脚本包括多条spark任务命令或者单条spark任务命令。
步骤S32:根据业务需要,立即或者定时执行脚本。
具体地,本申请实施例把不同范围参数的多条spark任务命令进行任务调度执行,编写成脚本。根据实际业务需要可以立即执行该脚本,也可以定时执行改脚本。本申请实施例也能根据资源情况允许部分机器执行该脚本。
脚本的执行包括单一脚本执行或者多个脚本并行执行。
在本申请实施例一些具体实现中,参见图3,本申请方法,还包括:
步骤S4:查看执行结束的日志,确定是否重新拆分spark任务运行所需的资源。
具体地,将执行结果进行汇总统计,记录每次每个spark任务的执行时间,如果某个spark任务执行时间过长,考虑重新拆分spark任务。
本申请实施例通过评估总体资源情况,然后通过评估执行spark任务所需的资源情况,最后通过任务拆分的策略分别对各条spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令。本申请实施例对spark任务的先后灵活调度执行,每个拆分的spark任务存取计算一部分的数据。通过上述的计算调度方法可以解决一次性导入大批量的数据资源不足,任务运行耗时长,任务中断等问题,实现任务资源灵活调度,提高任务执行效率,缩短任务执行时间。
本申请实施例通过任务拆分的策略,根据业务实际需求灵活选择不同任务拆分的策略拆分spark任务,每次读取的数据量按照选择的拆分策略进行范围切分,对spark任务合理拆分缓解了集群资源不足、无法临时扩展资源等问题,实现了任务资源的灵活调度。
本申请实施例对spark任务运行命令添加不同范围的参数值,在程序中将外部参数作为条件读取数据,拆分后的每个spark任务运行脚本互不影响,任务执行时通过多个脚本命令立即或定时单个顺序执行或者多个脚本任务同时并发执行。通过脚本运行命令设置不同参数,采用外部传参根据调度策略灵活调整计算来确定每一批次的数据的导入,使得每个拆分的spark任务读取的数据互不影响,任务执行模块能够灵活选择并发执行还是顺序执行。
本申请实施例所提供的方法在企业集群资源一定时,解决spark任务执行导入海量数据时耗时时间巨大中途任务失败的问题,该计算调度方法可在后续灵活修改脚本命令,无需更改代码,易用性更强,快速解决问题。
对应上述方法,本申请还提供一种spark计算调度的装置。参见图4,该装置包括:
拆分评估模块401,用于分析总体资源情况以及执行任务所需的资源情况,并根据总体资源情况以及执行任务所需的资源情况确定任务拆分的策略;
调度管理模块402,用于根据任务拆分的策略,分别对各条spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令;
任务执行模块403,用于将具有不同范围参数的spark任务命令进行任务调度并编写成脚本,根据业务需要进行脚本的执行。
本申请实施例解决了spark计算存储大批量的数据到Hbase时任务执行过慢甚至失败的问题,通过任务拆分的策略,实现计算存储任务在一定资源下可正常运行、高效完成计算和存储。
参照图5,示出了根据本申请的另一实施例的电子设备的结构示意图,本申请具体实施例并不对电子设备的具体实现做限定。
如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储有程序510的存储器(memory)506、以至通信总线508。
处理器、通信接口、以至存储器通过通信总线完成相互间的通信。通信接口,用于与其它电子设备或服务器进行通信。处理器,用于执行程序,具体可以执行上述方法实施例中的相关步骤。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
处理器可能是处理器CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以至一个或多个ASIC。
存储器,用于存放程序。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序具体可以用于使得处理器执行操作:分析总体资源情况以及执行spark任务所需的资源情况,并根据总体资源情况以及执行spark任务所需的资源情况确定任务拆分的策略;根据任务拆分的策略,分别对各条spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令;将具有不同范围参数的spark任务命令进行任务调度并编写成脚本,根据业务需要进行脚本的执行。
本申请实施例解决了spark计算存储大批量的数据到Hbase时任务执行过慢甚至失败的问题,通过任务拆分的策略,实现计算存储任务在一定资源下可正常运行、高效完成计算和存储。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本申请实施例还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以至流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (10)
1.一种spark计算调度的方法,其特征在于,所述方法包括:
分析总体资源情况以及执行spark任务所需的资源情况,并根据所述总体资源情况以及执行所述spark任务所需的资源情况确定任务拆分的策略;
根据所述任务拆分的策略,分别对各条所述spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令;
将所述具有不同范围参数的所述spark任务命令进行任务调度并编写成脚本,根据业务需要进行所述脚本的执行。
2.根据权利要求1所述的方法,其中,所述总体资源情况为大数据集群队列资源情况,所述大数据集群队列资源情况包括:CPU核数、内存、活跃机器数。
3.根据权利要求2所述的方法,其中,所述执行spark任务所需的资源情况包括:待计算的数据量大小、单位时间内存储的数据量以及执行所述任务所需存储的数据量。
4.根据权利要求3所述的方法,其中,所述任务拆分策略包括下述至少其一:
根据固定数据量进行拆分、根据业务分组进行拆分、根据集群可用内存一次性计算的最大数据量进行拆分、根据数据分布动态设置分割点进行拆分。
5.根据权利要求4所述的方法,其中,所述根据所述任务拆分的策略,分别对各条spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令,还包括:
在程序中将所述具有不同范围的参数值的spark任务命令的外部传递参数的范围设置成开始标识和结束标志,并将所述开始标志和所述结束标志作为条件读取数据。
6.根据权利要求5所述的方法,其中,所述将所述具有不同范围参数的所述spark任务命令进行任务调度并编写成脚本,根据业务需要进行所述脚本的执行,包括:
将所述具有不同范围参数的所述spark任务命令进行任务调度并编写成脚本,其中,所述脚本包括多条所述spark任务命令或者单条所述spark任务命令;
根据业务需要,立即或者定时执行所述脚本。
7.根据权利要求6所述的方法,其中,所述脚本的执行包括单一脚本执行或者多个脚本并行执行。
8.一种spark计算调度的装置,其特征在于,所述装置包括:
拆分评估模块,用于分析总体资源情况以及执行任务所需的资源情况,并根据所述总体资源情况以及所述执行任务所需的资源情况确定任务拆分的策略;
[HZTC-HXZXGS231006][HS2311422CCN]调度管理模块,用于根据所述任务拆分的策略,分别对各条spark任务运行所需的资源进行拆分,获得具有不同范围的参数值的spark任务命令;
任务执行模块,用于将所述具有不同范围参数的所述spark任务命令进行任务调度并编写成脚本,根据业务需要进行所述脚本的执行。
9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的方法对应的操作。
10.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311753831.1A CN117573368A (zh) | 2023-12-19 | 2023-12-19 | 一种spark计算调度的方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311753831.1A CN117573368A (zh) | 2023-12-19 | 2023-12-19 | 一种spark计算调度的方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117573368A true CN117573368A (zh) | 2024-02-20 |
Family
ID=89862459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311753831.1A Pending CN117573368A (zh) | 2023-12-19 | 2023-12-19 | 一种spark计算调度的方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573368A (zh) |
-
2023
- 2023-12-19 CN CN202311753831.1A patent/CN117573368A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6928104B2 (ja) | ブロック・チェーンにサービス・データを書き込むための方法および装置、ならびにサービス・サブセットを判定するための方法 | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
CN107450979B (zh) | 一种区块链共识方法及装置 | |
Hu et al. | Flutter: Scheduling tasks closer to data across geo-distributed datacenters | |
US8381230B2 (en) | Message passing with queues and channels | |
US8984085B2 (en) | Apparatus and method for controlling distributed memory cluster | |
US20180150326A1 (en) | Method and apparatus for executing task in cluster | |
Nghiem et al. | Towards efficient resource provisioning in MapReduce | |
US11228489B2 (en) | System and methods for auto-tuning big data workloads on cloud platforms | |
CN110233802B (zh) | 一种构建一主链多侧链的区块链架构的方法 | |
EP3413197B1 (en) | Task scheduling method and device | |
CN107766147A (zh) | 分布式的数据分析任务调度系统 | |
CN112540841B (zh) | 任务调度的方法、装置、处理器与电子设备 | |
CN107070709B (zh) | 一种基于底层numa感知的nfv实现方法 | |
Jiang et al. | Parallel K-Medoids clustering algorithm based on Hadoop | |
Tavakoli et al. | Client-side straggler-aware I/O scheduler for object-based parallel file systems | |
Liu et al. | Optimizing shuffle in wide-area data analytics | |
US8543722B2 (en) | Message passing with queues and channels | |
He et al. | Real-time scheduling in mapreduce clusters | |
CN111858656A (zh) | 一种基于分布式架构的静态数据的查询方法和设备 | |
US11372633B2 (en) | Method, device and terminal apparatus for code execution and computer readable storage medium | |
US10901972B2 (en) | Table partition configuration method, apparatus and system for database system | |
CN117573368A (zh) | 一种spark计算调度的方法、装置、电子设备及介质 | |
CN115760405A (zh) | 交易执行方法、装置、计算机设备及介质 | |
CN111045959A (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 |