【技术实现步骤摘要】
Spark环境下基于自适应预留内存的数据调度策略
[0001]本专利技术涉及云计算
,尤其涉及一种Spark环境下基于自适应预留内存的数据调度策略。
技术介绍
[0002]Spark是一个快速、通用的大规模数据处理引擎,具有快速、易用、通用、兼容性好的特点。Spark使用有向无环图DAG进行作业调度,根据依赖关系将不同作业分解成大量的子任务组成的DAG,减少了不同作业之间的传递过程。DAG由RDD算子构建的关系与弹性分布式数据集RDD组成。作为Spark中的一个关键抽象,RDD是Spark集群中跨节点分区的对象集合,通过将这些RDD存入内存中,便无需再频繁地从外部存储介质中读取和写入数据。同时,不断增加的数据量以及数据复杂度,会使RDD的大小与数量不断增加,进而增加内存压力。为了合理利用内存资源,高效的内存管理成为Spark的重要研究问题。在Spark最初采用的静态内存管理机制下,存储内存、执行内存和其他内存的大小在Spark应用程序运行期间均为固定的,但用户可以在程序启动前进行配置。存储内存(storage memo ...
【技术保护点】
【技术特征摘要】
1.一种Spark环境下基于自适应预留内存的数据调度策略,其特征在于,包括:判断内存空间是否满足执行任务并行度最优内存的执行条件,如果满足并且发现有任务被阻塞,进行执行内存的重新分配并优先保证任务并行度;如果内存中任务运行正常,触发内存的自适应调节算法,对多余的内存进行回收;根据内存的分配空间大小控制RDD选择计算代价更低的存储位置,以让出足够的空间优先保证执行内存的空间预留。2.根据权利要求1所述的Spark环境下基于自适应预留内存的数据调度策略,其特征在于,所述执行任务并行度最优内存的执行条件包括:ActiveTaskNum<MaxTaskNum或者,其中ActiveTaskNum表示正在运行的任务数量,MaxTaskNum表示最大运行任务数量,MemoryUsage表示正在使用的内存大小,StorageMemoryUsage表示正在使用的存储内存大小,MaxMemory表示最大可用堆内存大小。3.根据权利要求1所述的Spark环境下基于自适应预留内存的数据调度策略,其特征在于,按照以下方式判断判断任务是否有阻塞需要重新分配空间,并同时检验剩余空间是否满足条件:ActiveTaskNum<MaxTaskNum并且,其中ActiveTaskNum表示正在运行的任务数量,MaxTaskNum表示最大运行任务数量,MemoryUsage表示正在使用的内存大小,StorageMemoryUsage表示正在使用的存储内存大小,MaxMemory表示最大可用堆内存大小,MaxExeMem表示当前可使用的最大执行内存空间。4.根据权利要求1所述的Spark环境下基于自适应预留内存的数据调度策略,其特征在于,按照以下方式进行执行内存的重新分配并优先保证任务并行度:MinExeMemory=MinPerTaskMem
×
MaxTaskNum其中MinPerTaskMem为所需要的最小执行内存大小,MaxMemory表示最大可用堆内存大小,SSF表示spark.storage.storageFraction参数,ActiveTaskNum表示正在运行的任务数量,MinExeMemory表示为了满足当前所有任务不阻塞所需要的最小执行内存空间。5.根据权利要求1所述的Spark环境下基于自适应预留内存的数据调度策略,其特征在于,按照以下方式判断剩余内存空间充分:
其中ActiveTaskNum表示正在运行的任务数量,...
【专利技术属性】
技术研发人员:何欣,李勃翰,辛致宜,谷航宇,潘顺杰,何义茹,赵宇曦,
申请(专利权)人:河南大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。