CN110928666A - 一种Spark环境中基于内存优化任务并行度的方法和系统 - Google Patents

一种Spark环境中基于内存优化任务并行度的方法和系统 Download PDF

Info

Publication number
CN110928666A
CN110928666A CN201911247293.2A CN201911247293A CN110928666A CN 110928666 A CN110928666 A CN 110928666A CN 201911247293 A CN201911247293 A CN 201911247293A CN 110928666 A CN110928666 A CN 110928666A
Authority
CN
China
Prior art keywords
scheduling
tasks
scheduling stage
processed
module
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.)
Granted
Application number
CN201911247293.2A
Other languages
English (en)
Other versions
CN110928666B (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.)
Hunan University
Original Assignee
Hunan University
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 Hunan University filed Critical Hunan University
Priority to CN201911247293.2A priority Critical patent/CN110928666B/zh
Publication of CN110928666A publication Critical patent/CN110928666A/zh
Application granted granted Critical
Publication of CN110928666B publication Critical patent/CN110928666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种Spark环境中基于内存优化任务并行度的方法,首先提出一种基于RDD的Spark执行引擎分析获取每个调度任务需要处理的数据量的过程,来预估确定每个任务需要的内存资源;其次,提出一种结合每个任务的输入数据量以及从节点现有的内存资源来预测从节点可以并发执行的任务数,考虑了Spark任务调度的本地化原则,使得预测的并发数符合实际调度情况,提高调度效率;最后,提出一种基于已经执行的任务内存反馈,使用AIMD算法动态自适应调整每个从节点的最佳任务并发数,弥补了静态预测的不足,使得任务调度最大限度的符合从节点现有的资源,有效的提高资源使用率以及运行性能。

Description

一种Spark环境中基于内存优化任务并行度的方法和系统
技术领域
本发明属于大数据、分布式并行计算领域,涉及一种Spark环境中基于内存优化任务并行度的方法和系统。
背景技术
随着各种网络应用程序生成的数据急剧增长,大数据分布式并行计算框架在处理和分析大量数据中具有重要意义。Apache Spark是MapReduce并行计算编程模型一种开源实现,相较于MapReduce的另一种开源实现Hadoop来说,Spark由于它在内存方面的优化,其性能效率至少比Hadoop提升了100多倍,并且其通用性、易用性、可融合性更好,使得它在近年来发展迅速。在研究方面,越来越多的开发者参与到Spark源码的贡献中,其代码库相较于其它大多数平台平台或框架来说最为活跃。在应用方面,它也被愈来愈多商业公司广泛使用,其中包括阿里巴巴、Cloudera、雅虎等。
Spark在处理大规模数据的时候,在Map阶段将输入数据切分成多个分片,然后每个分片生成相应的任务去处理这些分片的数据,Map阶段会生成相应的中间结果,在Reduce阶段读取这些中间结果进行处理。不管是Map阶段还是Reduce阶段,Spark任务都是以任务的方式调度到从节点(Executor)上去执行,每个从节点上可以同时有多个任务并行执行。在现有的Spark调度机制中,从节点可以同时并行执行的任务数量默认是一个,也可以由用户通过相应的参数进行指定。
然而,现有的这种Spark调度机制存在两个不可忽略的缺陷:第一,如果并行执行的任务数量是默认为1个时,一个并行任务会造成Spark程序执行效率的低下以及资源的浪费;第二,如果并行执行的任务数量是由用户自行设置的,则可能会出现不合理的情况,过多或者过少都是会影响Spark应用程序的执行性能与效率。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种Spark环境中基于内存优化任务并行度的方法和系统,任务其目的在于,解决现有Spark调度机制中存在的并行执行的任务数量默认为1时,一个并行任务会造成Spark程序执行效率的低下以及资源的浪费的技术问题,以及当并行执行的任务数量是由用户自行设置时,会影响Spark应用程序的执行性能与效率的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种Spark环境中基于内存优化任务并行度的方法,所述Spark环境包括一个主节点以及多个从节点,所述方法包括以下步骤:
(1)主节点接收用户发送的Spark应用程序,对该Spark应用程序进行解析,以得到表征多个弹性分布式数据集RDD之间关系的RDD图、以及调度阶段的有向无环图DAG;
(2)主节点根据DAG图中各个调度阶段所包括的RDD的数据来源将所有调度阶段进行分类。
(3)主节点设置计数器i=1;
(4)主节点判断i是否大于DAG图中需要被执行的调度阶段总数,如果是则过程结束,否则转入步骤(5);
(5)主节点执行DAG图中第i个需要被执行的调度阶段,从而获得该调度阶段对应的多个任务,并根据该调度阶段在步骤(2)中的分类结果,获取该调度阶段对应的任务所处理的数据量;
(6)主节点计算每个从节点能够同时处理的任务数量;
(7)主节点根据每个从节点能够同时处理的任务数量,将步骤(1)得到的DAG图中第i个需要被执行的调度阶段对应的多个任务调度到多个从节点中去执行,并等待每个从节点结束执行任务后反馈的内存资源使用情况。
(8)主节点判断从节点已经处理的任务总量是否大于第i个需要被执行的调度阶段对应的所有任务,如果是则转入步骤(10),否则转入步骤(9);
(9)主节点根据从节点发送的其内存资源使用情况对该从节点能够同时处理的任务数量进行动态调整,并返回步骤(6);
(10)主节点设置i=i+1,并返回步骤(4)。
优选地,步骤(2)中所有调度阶段被划分成三类,其中第一类调度阶段表示该调度阶段中存在至少一个RDD,其数据是来自外部数据源,并且剩余的每个RDD,其数据是源自该至少一个RDD;第二类调度阶段表示该调度阶段中所有RDD的数据是来自该调度阶段的上一个调度阶段所得到的中间结果;第三类调度阶段表示该调度阶段中存在至少一个RDD的数据是来自外部数据源,且存在至少一个RDD的数据是来自该调度阶段的上一个调度阶段所得到的中间结果。
优选地,当调度阶段是属于第一类调度阶段时,步骤(5)中根据该调度阶段在步骤(2)中的分类结果,获取该调度阶段对应的任务所处理的数据量这一过程具体为,获取外部数据源中每个分区的数据量,该分区的数据量就是DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量。
优选地,当调度阶段是属于第二类调度阶段时,步骤(5)中根据该调度阶段在步骤(2)中的分类结果,获取该调度阶段对应的任务所处理的数据量这一过程具体为,获取DAG图中第i个需要被执行的调度阶段的上一个调度阶段的执行结果中,属于DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量。
优选地,当调度阶段是属于第三类调度阶段时,步骤(5)中根据该调度阶段在步骤(2)中的分类结果,获取该调度阶段对应的任务所处理的数据量这一过程具体为,获取外部数据源中每个分区的数据量,以及DAG图中第i个需要被执行的调度阶段的上一个调度阶段的执行结果中,属于DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量,将两个数据量相加作为DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量。
优选地,步骤(6)具体包括以下子步骤:
(6-1)设置计数器j=1;
(6-2)判断j是否大于从节点的总数,如果是则过程结束,否则转入步骤(6-3);
(6-3)针对第i个需要被执行的调度阶段对应的多个任务,根据每个任务处理的数据中位于第j个从节点上的数量将所有任务从大到小进行排序,并从中选取前M个任务作为第j个从节点能够同时处理的任务数量,其中M的取值为使得前M个任务处理的数据量相加的总和小于或等于第j个从节点的执行内存;
(6-4)设置计数器j=j+1,并返回步骤(6-2)。
优选地,步骤(9)具体为,主节点根据从节点发送的内存资源使用情况并使用加性增长乘性减少算法AIMD对该从节点能够同时处理的任务数量进行处理,从而得到更新后的节点能够同时处理的任务数量。
优选地,如果内存资源使用情况显示内存告急,则使用AIMD算法对该从节点能够同时处理的任务数量进行减半处理,反之则使用AIMD算法对该从节点能够同时处理的任务数量进行加性增长处理。
按照本发明的另一方面,提供了一种Spark环境中基于内存优化任务并行度的系统,所述Spark环境包括一个主节点以及多个从节点,所述系统包括:
第一模块,其设置于主节点中,用于接收用户发送的Spark应用程序,对该Spark应用程序进行解析,以得到表征多个弹性分布式数据集RDD之间关系的RDD图、以及调度阶段的有向无环图DAG;
第二模块,其设置于主节点中,用于根据DAG图中各个调度阶段所包括的RDD的数据来源将所有调度阶段进行分类。
第三模块,其设置于主节点中,用于设置计数器i=1;
第四模块,其设置于主节点中,用于判断i是否大于DAG图中需要被执行的调度阶段总数,如果是则过程结束,否则转入第五模块;
第五模块,其设置于主节点中,用于执行DAG图中第i个需要被执行的调度阶段,从而获得该调度阶段对应的多个任务,并根据该调度阶段在第二模块中的分类结果,获取该调度阶段对应的任务所处理的数据量;
第六模块,其设置于主节点中,用于计算每个从节点能够同时处理的任务数量;
第七模块,其设置于主节点中,用于根据每个从节点能够同时处理的任务数量,将第一模块得到的DAG图中第i个需要被执行的调度阶段对应的多个任务调度到多个从节点中去执行,并等待每个从节点结束执行任务后反馈的内存资源使用情况。
第八模块,其设置于主节点中,用于判断从节点已经处理的任务总量是否大于第i个需要被执行的调度阶段对应的所有任务,如果是则转入第十模块,否则转入第九模块;
第九模块,其设置于主节点中,用于根据从节点发送的其内存资源使用情况对该从节点能够同时处理的任务数量进行动态调整,并返回第六模块;
第十模块,其设置于主节点中,用于设置i=i+1,并返回第四模块。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)由于本发明采用了步骤(1)到(9),其根据任务处理的数据以及从节点的执行内存计算符合节点资源的、可并行执行的任务数量,因此能够解决现有Spark调度机制中当并行执行的任务数量默认为1时,一个并行任务会造成Spark程序执行效率的低下以及资源的浪费的技术问题;
(2)由于本发明采用了步骤(1)到(12),其在整个Spark应用程序的执行过程中首先通过任务处理的数据以及从节点的执行内存计算符合节点资源的、可并行执行的任务数量,并根据内存资源使用情况使用AIMD算法对该任务数量进行动态调整,因此能够解决现有Spark调度机制中当并行执行的任务数量是由用户自行设置时,会影响Spark应用程序的执行性能与效率的技术问题;
(3)本发明能够保证从节点上可以运行的任务数总是最大程度上适应于其资源可用性,从而有效的确保了资源的可用性和利用率,并提高了Spark应用程序的作业效率。
附图说明
图1示出本发明步骤(1)中得到的RDD图的实例;
图2示出本发明步骤(1)中得到的有向无环图的实例;
图3是本发明Spark环境中基于内存优化任务并行度的方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的基本思路在于,提供一种Spark环境中基于内存优化任务并行度的方法和系统,其首先根据Spark任务实际输入数据特点,提出一种计算任务处理数据量的方法,计算方法是基于已有属性的获取和累加,可以保证结果的准确性与真实性。其次,在了解了任务处理数据以及从节点现有内存资源,并且考虑任务调度数据本地化的基础上,预估从节点初始的最佳并行任务数。最后,基于已调度任务的资源反馈,提出适应性的AIMD算法,在不同任务调度批次中对从节点并行度进行动态调整,使其每次调度都能符合从节点实际资源使用,有效降低作业运行时间和提资源利用率。
如图3所示,本发明提供了一种Spark环境中基于内存优化任务并行度的方法,该Spark环境包括一个主节点(Master)以及多个从节点(Executor),所述方法包括以下步骤:
(1)主节点接收用户发送的Spark应用程序,对该Spark应用程序进行解析,以得到表征多个弹性分布式数据集(Resilient distributed dataset,简称RDD)之间关系的RDD图(如图1所示)、以及调度阶段的有向无环图(Directed Acyclic Graph,简称DAG图,如图2所示);
具体而言,从图1可以看出,该RDD图反映的是多个RDD(在图中是4个,但应理解这仅仅是出于举例的目的)、以及它们彼此之间的转换关系(在图中是使用箭头来表示),从图2中可以看出,该DAG图包括多个调度阶段(在图中虽然仅仅只示出两个阶段,但是应该理解其并不构成对调度阶段数量的限定),其中调度阶段1(Stage 1)包括RDD1和RDD2,而调度阶段0包括RDD0和RDD3,调度阶段1先于调度阶段0被执行(因此称调度阶段1是调度阶段0的上一个调度阶段),各个调度阶段中不同RDD之间的转换关系和图1是完全一样的,调度阶段1被执行完毕后会产生中间结果,随后调度阶段0会读取该中间结果、以及该调度阶段0本身所包括的RDD0中的数据,将这两个数据相加后作为RDD3的输入再执行。
应该注意的是,图1和图2中的图都是Spark环境中自动执行并生成的。
(2)主节点根据DAG图中各个调度阶段所包括的RDD的数据来源将所有调度阶段划分成三类,其中第一类调度阶段表示该调度阶段中存在至少一个RDD,其数据是来自外部数据源,例如Hadoop分布式文件系统(Hadoop distributed file system,简称HDFS)等,并且剩余的每个RDD,其数据是源自该至少一个RDD;第二类调度阶段表示该调度阶段中所有RDD的数据是来自该调度阶段的上一个调度阶段所得到的中间结果;第三类调度阶段表示该调度阶段中存在至少一个RDD的数据是来自外部数据源,且存在至少一个RDD的数据是来自该调度阶段的上一个调度阶段所得到的中间结果。
举例而言,仍然参考图2,可以看出,对于调度阶段1而言,其中RDD1的数据都是来自外部数据源,RDD2的数据是来自于RDD1,因此调度阶段1就是第一类调度阶段;对于调度阶段0而言,其上一个调度阶段就是调度阶段1,可以看出调度阶段0中的RDD0的数据是来自外部数据源,但是RDD3的数据包括两部分,一部分是RDD0的外部数据源,另一部分是其上一个调度阶段1中的RDD2执行完毕后产生的中间结果,因此调度阶段0是第三类调度阶段。
当然,可以理解的是,如果调度阶段0中的RDD3,其数据仅仅是来自于上一个调度阶段1中的RDD2执行完毕后产生的中间结果,那么该调度阶段0就是第二类调度阶段。
(3)主节点设置计数器i=1;
(4)主节点判断i是否大于DAG图中需要被执行的调度阶段总数,如果是则过程结束,否则转入步骤(5);
(5)主节点执行DAG图中第i个需要被执行的调度阶段,从而获得该调度阶段对应的多个任务,并判断该调度阶段是属于第一类调度阶段,第二类调度阶段,还是第三类调度阶段,如果是第一类调度阶段,则进入步骤(6),如果是第二类调度阶段,则进入步骤(7),如果是第三类调度阶段,则进入步骤(8);
(6)主节点获取外部数据源中每个分区的数据量,该分区的数据量就是DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量,然后进入步骤(9);
(7)主节点获取DAG图中第i个需要被执行的调度阶段的上一个调度阶段的执行结果中,属于DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量,然后进入步骤(9);
(8)主节点获取外部数据源中每个分区的数据量,以及DAG图中第i个需要被执行的调度阶段的上一个调度阶段的执行结果中,属于DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量,将两个数据量相加作为DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量,然后进入步骤(9);
(9)主节点计算每个从节点能够同时处理的任务数量(即并行度),具体是通过以下子步骤获得的:
(9-1)设置计数器j=1;
(9-2)判断j是否大于从节点的总数,如果是则过程结束,否则转入步骤(9-3);
(9-3)针对第i个需要被执行的调度阶段对应的多个任务,根据每个任务处理的数据中位于第j个从节点上的数量将所有任务从大到小进行排序,并从中选取前M个任务作为第j个从节点能够同时处理的任务数量,其中M的取值为使得前M个任务处理的数据量相加的总和小于或等于第j个从节点的执行内存;
(9-4)设置计数器j=j+1,并返回步骤(9-2);
(10)主节点根据每个从节点能够同时处理的任务数量,将DAG图中第i个需要被执行的调度阶段对应的多个任务调度到多个从节点中去执行,每个从节点结束执行任务后反馈的内存资源使用情况。
(11)主节点判断从节点已经处理的任务总量是否大于第i个需要被执行的调度阶段对应的所有任务,如果是则转入步骤(13),否则转入步骤(12);
(12)主节点根据从节点发送的其内存资源使用情况对该从节点能够同时处理的任务数量进行动态调整,并返回步骤(9);
本步骤具体为,主节点根据从节点发送的内存资源使用情况并使用加性增长乘性减少(Additive Increase Multiplicative Decrease,简称AIMD)算法对该从节点能够同时处理的任务数量进行处理,从而得到更新后的节点能够同时处理的任务数量。更具体而言,如果内存资源使用情况显示内存告急,则使用AIMD算法对该从节点能够同时处理的任务数量进行减半(Multiplicative Decrease)处理,反之则进行加性增长(AdditiveIncrease)处理。
(13)主节点设置i=i+1,并返回步骤(4)。
本发明提供一种Spark计算环境中基于内存的动态自适应的任务并行度优化方法,针对Spark任务调度中并行度的设置可能存在的不合理问题,根据实际的Spark的运行资源限制,尤其是内存,以静态加动态的方式进行自适应调整调度。首先对当前要调度的属于一个调度阶段中的任务,基于任务的生成原理,获取每个任务要处理的数据量,然后基于已知的任务输入数据量和从节点的内存资源,并且考虑到任务数据的本地化分布,在满足资源可用性情况下,预测每个从节点上的初始任务并行度。最后针对已经运行的任务的反馈,按批次根据AIMD算法动态的调整任务并行度,保证从节点上可以运行的任务数总是最大程度上适应于其资源可用性。
本发明在任务开始调度前,基于已知的任务及内存资源信息,调整任务并行度,避免不合理的并行度造成的资源浪费以及作业延时,在任务开始调度之后,根据实际的执行情况,进一步动态调整任务并发度,有效的保证了资源的可用性,提高了作业效率以及资源利用率。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种Spark环境中基于内存优化任务并行度的方法,所述Spark环境包括一个主节点以及多个从节点,其特征在于,所述方法包括以下步骤:
(1)主节点接收用户发送的Spark应用程序,对该Spark应用程序进行解析,以得到表征多个弹性分布式数据集RDD之间关系的RDD图、以及调度阶段的有向无环图DAG;
(2)主节点根据DAG图中各个调度阶段所包括的RDD的数据来源将所有调度阶段进行分类。
(3)主节点设置计数器i=1;
(4)主节点判断i是否大于DAG图中需要被执行的调度阶段总数,如果是则过程结束,否则转入步骤(5);
(5)主节点执行DAG图中第i个需要被执行的调度阶段,从而获得该调度阶段对应的多个任务,并根据该调度阶段在步骤(2)中的分类结果,获取该调度阶段对应的任务所处理的数据量;
(6)主节点计算每个从节点能够同时处理的任务数量;
(7)主节点根据每个从节点能够同时处理的任务数量,将步骤(1)得到的DAG图中第i个需要被执行的调度阶段对应的多个任务调度到多个从节点中去执行,并等待每个从节点结束执行任务后反馈的内存资源使用情况。
(8)主节点判断从节点已经处理的任务总量是否大于第i个需要被执行的调度阶段对应的所有任务,如果是则转入步骤(10),否则转入步骤(9);
(9)主节点根据从节点发送的其内存资源使用情况对该从节点能够同时处理的任务数量进行动态调整,并返回步骤(6);
(10)主节点设置i=i+1,并返回步骤(4)。
2.根据权利要求1所述的方法,其特征在于,步骤(2)中所有调度阶段被划分成三类,其中第一类调度阶段表示该调度阶段中存在至少一个RDD,其数据是来自外部数据源,并且剩余的每个RDD,其数据是源自该至少一个RDD;第二类调度阶段表示该调度阶段中所有RDD的数据是来自该调度阶段的上一个调度阶段所得到的中间结果;第三类调度阶段表示该调度阶段中存在至少一个RDD的数据是来自外部数据源,且存在至少一个RDD的数据是来自该调度阶段的上一个调度阶段所得到的中间结果。
3.根据权利要求2所述的方法,其特征在于,当调度阶段是属于第一类调度阶段时,步骤(5)中根据该调度阶段在步骤(2)中的分类结果,获取该调度阶段对应的任务所处理的数据量这一过程具体为,获取外部数据源中每个分区的数据量,该分区的数据量就是DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量。
4.根据权利要求2所述的方法,其特征在于,当调度阶段是属于第二类调度阶段时,步骤(5)中根据该调度阶段在步骤(2)中的分类结果,获取该调度阶段对应的任务所处理的数据量这一过程具体为,获取DAG图中第i个需要被执行的调度阶段的上一个调度阶段的执行结果中,属于DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量。
5.根据权利要求2所述的方法,其特征在于,当调度阶段是属于第三类调度阶段时,步骤(5)中根据该调度阶段在步骤(2)中的分类结果,获取该调度阶段对应的任务所处理的数据量这一过程具体为,获取外部数据源中每个分区的数据量,以及DAG图中第i个需要被执行的调度阶段的上一个调度阶段的执行结果中,属于DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量,将两个数据量相加作为DAG图中第i个需要被执行的调度阶段对应的任务所处理的数据量。
6.根据权利要求1所述的方法,其特征在于,步骤(6)具体包括以下子步骤:
(6-1)设置计数器j=1;
(6-2)判断j是否大于从节点的总数,如果是则过程结束,否则转入步骤(6-3);
(6-3)针对第i个需要被执行的调度阶段对应的多个任务,根据每个任务处理的数据中位于第j个从节点上的数量将所有任务从大到小进行排序,并从中选取前M个任务作为第j个从节点能够同时处理的任务数量,其中M的取值为使得前M个任务处理的数据量相加的总和小于或等于第j个从节点的执行内存;
(6-4)设置计数器j=j+1,并返回步骤(6-2)。
7.根据权利要求1所述的方法,其特征在于,步骤(9)具体为,主节点根据从节点发送的内存资源使用情况并使用加性增长乘性减少算法AIMD对该从节点能够同时处理的任务数量进行处理,从而得到更新后的节点能够同时处理的任务数量。
8.根据权利要求7所述的方法,其特征在于,如果内存资源使用情况显示内存告急,则使用AIMD算法对该从节点能够同时处理的任务数量进行减半处理,反之则使用AIMD算法对该从节点能够同时处理的任务数量进行加性增长处理。
9.一种Spark环境中基于内存优化任务并行度的系统,所述Spark环境包括一个主节点以及多个从节点,其特征在于,所述系统包括:
第一模块,其设置于主节点中,用于接收用户发送的Spark应用程序,对该Spark应用程序进行解析,以得到表征多个弹性分布式数据集RDD之间关系的RDD图、以及有向无环图DAG;
第二模块,其设置于主节点中,用于根据DAG图中各个调度阶段所包括的RDD的数据来源将所有调度阶段进行分类。
第三模块,其设置于主节点中,用于设置计数器i=1;
第四模块,其设置于主节点中,用于判断i是否大于DAG图中需要被执行的调度阶段总数,如果是则过程结束,否则转入第五模块;
第五模块,其设置于主节点中,用于执行DAG图中第i个需要被执行的调度阶段,从而获得该调度阶段对应的多个任务,并根据该调度阶段在第二模块中的分类结果,获取该调度阶段对应的任务所处理的数据量;
第六模块,其设置于主节点中,用于计算每个从节点能够同时处理的任务数量;
第七模块,其设置于主节点中,用于根据每个从节点能够同时处理的任务数量,将第一模块得到的DAG图中第i个需要被执行的调度阶段对应的多个任务调度到多个从节点中去执行,并等待每个从节点结束执行任务后反馈的内存资源使用情况。
第八模块,其设置于主节点中,用于判断从节点已经处理的任务总量是否大于第i个需要被执行的调度阶段对应的所有任务,如果是则转入第十模块,否则转入第九模块;
第九模块,其设置于主节点中,用于根据从节点发送的其内存资源使用情况对该从节点能够同时处理的任务数量进行动态调整,并返回第六模块;
第十模块,其设置于主节点中,用于设置i=i+1,并返回第四模块。
CN201911247293.2A 2019-12-09 2019-12-09 一种Spark环境中基于内存优化任务并行度的方法和系统 Active CN110928666B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911247293.2A CN110928666B (zh) 2019-12-09 2019-12-09 一种Spark环境中基于内存优化任务并行度的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911247293.2A CN110928666B (zh) 2019-12-09 2019-12-09 一种Spark环境中基于内存优化任务并行度的方法和系统

Publications (2)

Publication Number Publication Date
CN110928666A true CN110928666A (zh) 2020-03-27
CN110928666B CN110928666B (zh) 2022-03-22

Family

ID=69858305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911247293.2A Active CN110928666B (zh) 2019-12-09 2019-12-09 一种Spark环境中基于内存优化任务并行度的方法和系统

Country Status (1)

Country Link
CN (1) CN110928666B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112365196A (zh) * 2020-12-03 2021-02-12 国网河北省电力有限公司信息通信分公司 基于Spark的分布式改进差分进化算法的电源规划方法
CN113434303A (zh) * 2021-08-27 2021-09-24 湖北星地智链科技有限公司 批处理的遥感影像智能处理模型预测性能优化系统及方法
CN113760489A (zh) * 2020-09-21 2021-12-07 北京沃东天骏信息技术有限公司 一种资源配置方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708622A (zh) * 2016-07-18 2017-05-24 腾讯科技(深圳)有限公司 集群资源处理方法和系统、资源处理集群
US20170185511A1 (en) * 2015-12-29 2017-06-29 International Business Machines Corporation Adaptive caching and dynamic delay scheduling for in-memory data analytics
CN107704069A (zh) * 2017-06-15 2018-02-16 重庆邮电大学 一种基于能耗感知的Spark节能调度方法
CN108270805A (zh) * 2016-12-30 2018-07-10 中国移动通信集团河北有限公司 用于数据处理的资源分配方法及装置
CN108415776A (zh) * 2018-03-06 2018-08-17 华中科技大学 一种分布式数据处理系统中的内存预估与配置优化的方法
CN108762921A (zh) * 2018-05-18 2018-11-06 电子科技大学 一种Spark集群系统的在线优化分区的任务调度方法及装置
CN110413389A (zh) * 2019-07-24 2019-11-05 浙江工业大学 一种资源不均衡Spark环境下的任务调度优化方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170185511A1 (en) * 2015-12-29 2017-06-29 International Business Machines Corporation Adaptive caching and dynamic delay scheduling for in-memory data analytics
CN106708622A (zh) * 2016-07-18 2017-05-24 腾讯科技(深圳)有限公司 集群资源处理方法和系统、资源处理集群
CN108270805A (zh) * 2016-12-30 2018-07-10 中国移动通信集团河北有限公司 用于数据处理的资源分配方法及装置
CN107704069A (zh) * 2017-06-15 2018-02-16 重庆邮电大学 一种基于能耗感知的Spark节能调度方法
CN108415776A (zh) * 2018-03-06 2018-08-17 华中科技大学 一种分布式数据处理系统中的内存预估与配置优化的方法
CN108762921A (zh) * 2018-05-18 2018-11-06 电子科技大学 一种Spark集群系统的在线优化分区的任务调度方法及装置
CN110413389A (zh) * 2019-07-24 2019-11-05 浙江工业大学 一种资源不均衡Spark环境下的任务调度优化方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
YAO YU,DAJIANG YI,ZHUO TANG,DEYIN OU,AILING ZENG,JINGNING LI: "A Regression Prediction Model Based on Incremental Iteration for Big Industrial Data", 《IEEE》 *
杨志伟,郑烇,王嵩,杨坚,周乐乐: "异构 Spark 集群下自适应任务调度策略", 《计算机工程》 *
陈天宇,张龙信,李肯立,周立前: "Spark 框架中RDD缓存替换策略优化", 《小微型计算机系统》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760489A (zh) * 2020-09-21 2021-12-07 北京沃东天骏信息技术有限公司 一种资源配置方法和装置
CN113760489B (zh) * 2020-09-21 2024-05-17 北京沃东天骏信息技术有限公司 一种资源配置方法和装置
CN112365196A (zh) * 2020-12-03 2021-02-12 国网河北省电力有限公司信息通信分公司 基于Spark的分布式改进差分进化算法的电源规划方法
CN113434303A (zh) * 2021-08-27 2021-09-24 湖北星地智链科技有限公司 批处理的遥感影像智能处理模型预测性能优化系统及方法

Also Published As

Publication number Publication date
CN110928666B (zh) 2022-03-22

Similar Documents

Publication Publication Date Title
Glushkova et al. Mapreduce performance model for Hadoop 2. x
US10558498B2 (en) Method for scheduling data flow task and apparatus
CN110928666B (zh) 一种Spark环境中基于内存优化任务并行度的方法和系统
Van Tilborg et al. Foundations of real-time computing: Scheduling and resource management
Saksena et al. Scalable real-time system design using preemption thresholds
CN111782355B (zh) 一种基于混合负载的云计算任务调度方法及系统
CN111026519B (zh) 基于分布式的任务优先级调度方法和系统及存储介质
CN103701886A (zh) 一种云计算环境下的服务及资源分层调度方法
Hashem et al. Multi-objective scheduling of MapReduce jobs in big data processing
Muthuvelu et al. On-line task granularity adaptation for dynamic grid applications
Yun et al. An integrated approach to workflow mapping and task scheduling for delay minimization in distributed environments
George et al. Job vs. portioned partitioning for the earliest deadline first semi-partitioned scheduling
Wang et al. A Smart Semipartitioned Real‐Time Scheduling Strategy for Mixed‐Criticality Systems in 6G‐Based Edge Computing
Xue et al. BOLAS: bipartite-graph oriented locality-aware scheduling for MapReduce tasks
Xu et al. Expansion slot backfill scheduling for concurrent workflows with deadline on heterogeneous resources
CN115129458B (zh) 基于容器的进程调度方法、装置、设备及存储介质
Saule et al. Optimizing the stretch of independent tasks on a cluster: From sequential tasks to moldable tasks
Benoit et al. Scheduling skeleton-based grid applications using PEPA and NWS
Manoharan Effect of task duplication on the assignment of dependency graphs
Salamun et al. Dynamic priority assignment in FreeRTOS kernel for improving performance metrics
Hanif et al. Jargon of Hadoop MapReduce scheduling techniques: a scientific categorization
Zhu et al. High-Throughput Scientific Workflow Scheduling under Deadline Constraint in Clouds.
Niyom et al. An energy-efficient process clustering assignment algorithm for distributed system
Birke et al. Differential approximation and sprinting for multi-priority big data engines
Santiago et al. A dynamic-balanced scheduler for Genetic Algorithms for Grid Computing

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
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20200327

Assignee: Shenzhen Zhengtong Electronics Co.,Ltd.

Assignor: HUNAN University

Contract record no.: X2020980010046

Denomination of invention: A method and system of optimizing task parallelism based on memory in spark environment

License type: Common License

Record date: 20201230

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Li Kenli

Inventor after: Tang Zhuo

Inventor after: Zeng Ailing

Inventor after: Zhang Xuedong

Inventor before: Tang Zhuo

Inventor before: Zeng Ailing

Inventor before: Li Kenli

Inventor before: Zhang Xuedong

GR01 Patent grant
GR01 Patent grant