CN107526546A - 一种Spark分布式计算数据处理方法及系统 - Google Patents
一种Spark分布式计算数据处理方法及系统 Download PDFInfo
- Publication number
- CN107526546A CN107526546A CN201710742728.5A CN201710742728A CN107526546A CN 107526546 A CN107526546 A CN 107526546A CN 201710742728 A CN201710742728 A CN 201710742728A CN 107526546 A CN107526546 A CN 107526546A
- Authority
- CN
- China
- Prior art keywords
- storage area
- memory storage
- migration
- data
- cache 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
Abstract
本发明公开了一种Spark分布式计算数据处理方法,涉及计算机领域,该方法包括:通过任务调度器调度子任务,执行RDD分区数据存储任务,申请存储区空间;计算存储区内可驱逐空间及空间的大小,根据分区数据访问热度设置混合存储系统的迁移地址;读取指定存储区内已缓存数据并释放相应的内存空间,迁移分区数据到指定地址,修改迁移数据的持久化级别,反馈驱逐成功信号及驱逐空间信息。本发明还公开了一种Spark分布式计算系统,通过引入混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据分区数据热度将数据迁移至SSD或HDD,而非直接将数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解内存空间不足的压力,实现Spark性能的提升。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种Spark分布式计算数据处理方法及系统。
背景技术
随着社会科学技术水平的提高,人们与对大规模数据处理的要求也越来越高,其中大数据应用对内存产生了强烈的依赖,充裕的内存是快速计算大数据的前提和保障。
Spark作为通用、快速、大规模数据处理引擎,已经成为大数据应用领域流行的计算框架,尤其在诸如图计算、机器学习等迭代计算的应用领域表现出色,随着数据集规模的不断扩大,由于空间的不足导致部分分区数据无法缓存至内存,或,已缓存至内存的数据需要迁移至磁盘,造成Spark性能的下降,针对该问题,Spark提出并设计了统一内存管理模型,当分区数据的缓存任务无法申请足够存储区空间时,主动迁移存储区内已缓存的数据至磁盘或直接剔除;统一内存管理模型具有一定的灵活性,通过迁移或剔除已缓存的数据,有效地缓解了Spark缓存大数据的需求与存储区空间不足的压力。
然而,由于已缓存的中间数据被剔除或迁移至磁盘,导致再次调用该数据时必须重新执行相应的计算任务来获取数据或读取磁盘获取缓存数据,所以Spark统一内存管理模型引发了Spark部分任务重复计算或磁盘读取的问题,对Spark性能产生恶劣的影响。
发明内容
本发明的主要目的在于提供一种Spark分布式计算数据处理方法及系统,旨在解决现有技术中Spark统一内存管理模型中Spark部分任务重复计算或磁盘读取的技术问题。
为实现上述目的,本发明第一方面提供一种Spark分布式计算系统数据处理方法,所述方法包括:
在对用户已标识缓存的弹性分布式数据集RDD分区数据执行存储任务时,若向Spark的内存存储区申请空间失败,则向驱逐逻辑单元发送驱逐所述内存存储区可驱逐缓存数据的命令;
计算所述内存存储区内可驱逐空间大小,若驱逐后空间大小满足所述存储任务对所述内存存储区空间的要求,则根据所述内存存储区可驱逐缓存数据访问热度设置基于SSD和HDD的混合存储系统的迁移地址;
读取并释放所述内存存储区内可驱逐缓存数据,迁移所述内存存储区内可驱逐缓存数据到所述迁移地址,修改所述内存存储区内可驱逐缓存数据持久化级别,反馈驱逐成功信号及驱逐信息。
为实现上述目的,本发明第二方面还提供一种一种Spark分布式计算数据处理系统,所述系统包括:
申请存储模块,用于在对用户已标识缓存的弹性分布式数据集RDD分区数据执行存储任务时,若向Spark的内存存储区申请空间失败,则向驱逐逻辑单元发送驱逐所述内存存储区缓存数据的命令;
计算分址模块,用于计算所述内存存储区内可驱逐空间大小,若驱逐后空间大小满足所述存储任务对所述内存存储区空间的要求,则根据所述内存存储区可驱逐缓存数据访问热度设置基于SSD和HDD的混合存储系统的迁移地址;
数据迁移模块,用于读取并释放所述内存存储区内可驱逐缓存数据,迁移所述内存存储区内可驱逐缓存数据到所述迁移地址,修改所述内存存储区内可驱逐缓存数据持久化级别,反馈驱逐成功信号及驱逐信息。
通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中Spark分布式计算数据处理方法的流程示意图;
图2为本发明实施例中Spark分布式计算数据处理方法步骤101的细化步骤流程示意图;
图3为本发明为本发明实施例中Spark分布式计算数据处理方法步骤102的细化步骤流程示意图;
图4为本发明为本发明实施例中Spark分布式计算数据处理方法步骤304中细化步骤流程示意图;
图5为本发明为本发明实施例中Spark分布式计算数据处理方法步骤103中迁移数据步骤细化步骤流程示意图;
图6为本发明为本发明实施例中Spark分布式计算数据处理方法步骤103中修改数据持久化级别步骤细化步骤流程示意图;
图7为本发明实施例中本发明为本发明实施例中Spark分布式计算数据处理系统的功能模块示意图;
图8为本发明实施例中Spark分布式计算数据处理系统的申请存储模块601的细化功能模块的示意图;
图9为本发明实施例中Spark分布式计算数据处理系统的申请存储模块602的细化功能模块的示意图;
图10为本发明实施例中Spark分布式计算数据处理系统的申请存储模块603的细化功能模块的示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例中Spark分布式计算数据处理方法的流程示意图,该处理方法包括:
S101、在对用户已标识缓存的弹性分布式数据集RDD分区数据执行存储任务时,若向Spark的内存存储区申请空间失败,则向驱逐逻辑单元发送驱逐内存存储区缓存数据的命令。
S102、计算内存存储区内可驱逐空间大小,若驱逐后空间大小满足存储任务对内存存储区空间的要求,则根据内存存储区可驱逐缓存数据访问热度设置基于SSD和HDD的混合存储系统的迁移地址。
S103、读取并释放内存存储区内可驱逐缓存数据,迁移内存存储区内可驱逐缓存数据到迁移地址,修改内存存储区内可驱逐缓存数据持久化级别,反馈驱逐成功信号及驱逐信息。
在本发明实施例中,通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
请参阅图2,图2为本发明实施例中Spark分布式计算数据处理方法S101的细化步骤流程示意图,该细化步骤包括:
S201、计算对RDD分区数据执行存储任务所占用内存存储区空间的大小,向Spark的内存存储区申请空间,并将存储任务所占用内存存储区空间的大小与内存存储区未占用空间作比较;
具体的,由Spark执行引擎通过任务调度器进行子任务的调度,在子任务运行时空间对用户已标识缓存的RDD分区数据执行存储任务,然后再尝试向Spark的内存存储区申请空间空间,若申请成功,则直接进行RDD分区数据的存储工作。
S202、若存储任务所占用内存存储区空间的大小大于内存存储区未占用空间,则向Spark的内存存储区申请空间失败,同时向驱逐逻辑单元发送驱逐内存存储区可驱逐缓存数据的命令以及发送存储任务需要占用内存存储区空间的大小。
在本发明实施例中,通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
请参阅图3,图3为本发明为本发明实施例中Spark分布式计算数据处理方法S102的细化步骤流程示意图,该细化步骤包括:
S301、驱逐逻辑单元接收到驱逐命令,同时驱逐逻辑单元向内存存储区发出由于RDD分区数据执行存储任务所需存储空间不足需要驱逐内存存储区空间的申请;
进一步的,当内存存储区接收到驱逐逻辑单元发出的申请后,判断内存存储区是否有可驱逐的空间并反馈给驱逐逻辑单元。
S302、若申请申请成功,则按近期最少使用算法LRU策略计算内存存储区内可驱逐空间大小;
其中,最少使用算法LRU策略即此算法根据内存存储区数据的历史访问热度记录来进行淘汰数据,其核心思想是:如果此数据最近被访问过,那么其将来被访问的几率也更高,根据访问几率判断内存存储区内可驱逐空间的大小。
S303、若内存存储区内可驱逐空间大小大于等于RDD分区数据执行存储任务需要占用空间大小。
S304、根据内存存储区可驱逐缓存数据的访问热度设置基于SSD和HDD的混合存储系统的迁移地址,并将内存存储区可驱逐缓存数据迁移信息和内存存储区可驱逐缓存数据迁移命令发送至缓存数据迁移单元。
S305、若内存存储区内可驱逐空间大小小于RDD分区数据执行存储任务需要占用空间大小。
S306、终止内存存储区可驱逐缓存数据迁移任务,并反馈驱逐内存存储区可驱逐缓存数据失败信号。
在本发明实施例中,通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
参阅图4,图4为本发明为本发明实施例中Spark分布式计算数据处理方法S304中细化步骤流程示意图,该细化步骤包括:
S3041、判断内存存储区可驱逐缓存数据访问热度。
S3042、若内存存储区可驱逐缓存数据访问热度在第一预置热度数值范围内,则读取SSD地址并将读取到的SSD地址设置为迁移地址;
其中,第一预置热度数值范围为内存存储区可驱逐缓存数据访问热度较高,具体的访问热度范围可由用户自由设置;
特别的,第一预置热度数值大于第二预置热度数值。
S3043、若内存存储区可驱逐缓存数据访问热度在第二预置热度数值范围内,则读取HDD地址并将读取到的HDD地址设置为迁移地址;
其中,第二预置热度数值范围为内存存储区可驱逐缓存数据访问热度较低,具体的访问热度范围可由用户自由设置。
在本发明实施例中,通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
请参阅图5,图5为本发明为本发明实施例中Spark分布式计算数据处理方法S103中迁移数据步骤细化步骤流程示意图,该细化步骤包括:
S401、缓存数据迁移单元接收到内存存储区可驱逐缓存数据迁移信息和内存存储区可驱逐缓存数据迁移命令后,将内存存储区可驱逐数据按迁移信息存储到SSD或HDD;
进一步的,缓存数据迁移单元接收到内存存储区可驱逐缓存数据迁移信息和内存存储区可驱逐缓存数据迁移命令后,会先读取指定内存存储区内已缓存数据并释放相应的内存空间,然后将内存存储区内已缓存数据按迁移地址存储到SSD或HDD;
其中,内存存储区可驱逐数据迁移信息具体包括:内存存储区可驱逐缓存数据地址、内存存储区可驱逐缓存数据空间大小以及迁移地址。
S402、向驱逐逻辑单元发送内存存储区可驱逐缓存数据迁移完成信号。
在本发明实施例中,通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
请参阅图6,图6为本发明为本发明实施例中Spark分布式计算数据处理方法S103中修改数据持久化级别步骤细化步骤流程示意图,该细化步骤包括:
S501、判断内存存储区可驱逐缓存数据迁移地址的类别。
S502、若内存存储区可驱逐缓存数据的迁移地址为SSD,修改内存存储区可驱逐缓存数据的持久化级别为SSD_ONLY。
S503、若内存存储区可驱逐缓存数据的迁移地址为HDD,修改内存存储区可驱逐缓存数据的持久化级别为HDD_ONLY。
S504、修改完成,反馈内存存储区可驱逐缓存数据驱逐成功信号以及内存存储区可驱逐数据迁移信息,以使得RDD分区数据进入内存存储区,完成存储任务。
在本发明实施例中,通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
请参阅图7,图7为本发明实施例中本发明为本发明实施例中Spark分布式计算数据处理系统的功能模块示意图,该功能模块包括:
申请存储模块601,用于在对用户已标识缓存的弹性分布式数据集RDD分区数据执行存储任务时,若向Spark的内存存储区申请空间失败,则向驱逐逻辑单元发送驱逐内存存储区缓存数据的命令;
计算分址模块602,用于计算内存存储区内可驱逐空间大小,若驱逐后空间大小满足存储任务对内存存储区空间的要求,则根据内存存储区可驱逐缓存数据访问热度设置基于SSD和HDD的混合存储系统的迁移地址;
数据迁移模块603,用于读取并释放内存存储区内可驱逐缓存数据,迁移内存存储区内可驱逐缓存数据到迁移地址,修改内存存储区内可驱逐缓存数据持久化级别,反馈驱逐成功信号及驱逐信息。
在本发明实施例中,通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
请参阅图8,图8为本发明实施例中Spark分布式计算数据处理系统的申请存储模块601的细化功能模块的示意图,该细化功能模块包括:
第一申请模块6011,用于计算对RDD分区数据执行存储任务所占用内存存储区空间的大小,向Spark内存存储区申请空间,并与内存存储区未占用空间作比较;
第一反馈模块6012,用于若存储任务所占用内存存储区空间的大小大于内存存储区未占用空间,则向Spark内存存储区申请空间失败,同时向驱逐逻辑单元发送驱逐内存存储区可驱逐缓存数据的命令以及发送存储任务需要占用内存存储区空间的大小。
在本发明实施例中,通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
请参阅图9,图9为本发明实施例中Spark分布式计算数据处理系统的申请存储模块602的细化功能模块的示意图,该细化功能模块包括:
第二申请模块6021,用于驱逐逻辑单元接收到驱逐命令,同时驱逐逻辑单元向内存存储区发出由于RDD分区数据执行存储任务所需存储空间不足需要驱逐空间的申请,若申请申请成功,则按近期最少使用算法LRU策略计算内存存储区内可驱逐空间大小;
设置迁移地址模块6022,用于若驱逐后内存存储区未占用空间大小大于等于RDD分区数据执行存储任务需要占用空间大小,根据内存存储区可驱逐缓存数据访问热度设置基于SSD和HDD的混合存储系统的迁移地址,并将内存存储区可驱逐缓存数据迁移信息和内存存储区可驱逐缓存数据迁移命令发送至缓存数据迁移单元;
第二反馈模块6023,用于若驱逐后内存存储区未占用空间大小小于RDD分区数据执行存储任务需要占用空间大小,则终止内存存储区可驱逐缓存数据迁移任务,并反馈驱逐内存存储区可驱逐缓存数据失败信号;
SSD迁移地址模块6024,用于若内存存储区可驱逐缓存数据访问热度在第一预置热度数值范围内,则读取SSD地址并将读取到的SSD地址设置为迁移地址;
HDD迁移地址模块6025,用于若内存存储区可驱逐缓存数据访问热度在第二预置热度数值范围内,则读取HDD地址并将读取到的HDD地址设置为迁移地址。
在本发明实施例中,通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
请参阅图10,图10为本发明实施例中Spark分布式计算数据处理系统的申请存储模块603的细化功能模块的示意图,该细化功能模块包括:
第三反馈模块6031,用于向驱逐逻辑单元发送内存存储区可驱逐缓存数据迁移完成信号;
SSD持久化级别模块6032,用于若内存存储区可驱逐缓存数据的迁移地址为SSD,修改内存存储区可驱逐缓存数据的持久化级别为SSD_ONLY;
HDD持久化级别模块6033,用于若内存存储区可驱逐缓存数据的迁移地址为HDD,修改内存存储区可驱逐缓存数据的持久化级别为HDD_ONLY;
第四反馈模块6034,用于反馈内存存储区可驱逐缓存数据驱逐成功信号以及内存存储区可驱逐数据迁移信息,以使得RDD分区数据进入内存存储区,完成存储任务。
在本发明实施例中,通过引入SSD与HDD构建混合存储系统,并设计驱逐逻辑单元和缓存数据迁移单元,根据热度灵活地将分区数据迁移至SSD或HDD,而非直接将已缓存的中间数据迁移至磁盘或踢除已缓存的数据,能够有效地缓解了Spark分区数据的缓存对存储区空间巨大需求与内存空间不足的压力,同时当调用分区数据时,由于混合存储系统的高速读写性能以及根据分区数据热度分开存储的特点,可以快速读取存储在混合存储系统中的不同访问热度的分区数据,实现Spark性能的提升。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种Spark分布式计算数据处理方法及系统的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种Spark分布式计算数据处理方法,其特征在于,所述方法包括:
在对用户已标识缓存的弹性分布式数据集(RDD,Resilient Distributed Datasets)分区数据执行存储任务时,若向Spark的内存存储区申请空间失败,则向驱逐逻辑单元发送驱逐所述内存存储区可驱逐缓存数据的命令;
计算所述内存存储区内可驱逐空间大小,若驱逐后空间大小满足所述存储任务对所述内存存储区空间的要求,则根据所述内存存储区可驱逐缓存数据访问热度设置基于固态硬盘(SSD,Solid State Drives)和磁盘(HDD,Hard Disk Drive)的混合存储系统的迁移地址;
读取并释放所述内存存储区内可驱逐缓存数据,迁移所述内存存储区内可驱逐缓存数据到所述迁移地址,修改所述内存存储区内可驱逐缓存数据持久化级别,反馈驱逐成功信号及驱逐信息。
2.根据权利要求1所述的方法,其特征在于,所述若向Spark内存存储区申请空间失败,则向驱逐逻辑单元发送驱逐所述内存存储区可驱逐缓存数据的命令具体包括:
计算所述对RDD分区数据执行存储任务所占用所述内存存储区空间的大小,向所述Spark的内存存储区申请空间,并将所述存储任务所占用所述内存存储区空间的大小与所述内存存储区未占用空间作比较,若所述存储任务所占用所述内存存储区空间的大小大于所述内存存储区未占用空间,则向所述Spark的内存存储区申请空间失败,同时向所述驱逐逻辑单元发送驱逐所述内存存储区可驱逐缓存数据的命令以及发送所述存储任务需要占用所述内存存储区空间的大小。
3.根据权利要求1所述的方法,其特征在于,所述计算所述内存存储区内可驱逐空间大小,若驱逐后空间大小满足所述存储任务对所述内存存储区空间的要求,则根据所述内存存储区可驱逐缓存数据访问热度设置基于SSD和HDD的混合存储系统的迁移地址具体包括:
所述驱逐逻辑单元接收到驱逐命令,同时所述驱逐逻辑单元向所述内存存储区发出由于所述RDD分区数据执行存储任务所需存储空间不足需要驱逐空间的申请,若所述申请申请成功,则按近期最少使用算法LRU策略计算所述内存存储区内可驱逐空间大小;
若所述内存存储区内可驱逐空间大小大于等于所述RDD分区数据执行存储任务需要占用空间大小,根据所述内存存储区可驱逐缓存数据的访问热度设置基于SSD和HDD的混合存储系统的迁移地址,并将所述内存存储区可驱逐缓存数据迁移信息和所述内存存储区可驱逐缓存数据迁移命令发送至缓存数据迁移单元;
若所述内存存储区内可驱逐空间大小小于所述RDD分区数据执行存储任务需要占用空间大小,则终止所述内存存储区可驱逐缓存数据迁移任务,并反馈驱逐所述内存存储区可驱逐缓存数据失败信号。
4.根据权利要求3所述的方法,其特征在于所述根据所述内存存储区可驱逐缓存数据的访问热度设置基于SSD和HDD的混合存储系统的迁移地址具体包括:
若所述内存存储区可驱逐缓存数据访问热度在第一预置热度数值范围内,则读取SSD地址并将读取到的SSD地址设置为所述迁移地址;
若所述内存存储区可驱逐缓存数据访问热度在第二预置热度数值范围内,则读取HDD地址并将读取到的HDD地址设置为所述迁移地址;
所述在第一预置热度数值大于所述第二预置热度数值。
5.根据权利要求1所述的方法,其特征在于,所述读取并释放所述内存存储区内可驱逐缓存数据,迁移所述内存存储区内可驱逐缓存数据到所述迁移地址具体包括:
缓存数据迁移单元接收到所述内存存储区可驱逐缓存数据迁移信息和所述内存存储区可驱逐缓存数据迁移命令后,将所述内存存储区可驱逐数据按所述迁移信息存储到SSD或HDD,并向所述驱逐逻辑单元发送所述内存存储区可驱逐缓存数据迁移完成信号;
其中所述内存存储区可驱逐数据迁移信息具体包括:所述内存存储区可驱逐缓存数据地址、所述内存存储区可驱逐缓存数据空间大小以及所述迁移地址。
6.根据权利要求1所述的方法,其特征在于,所述修改所述内存存储区可驱逐缓存数据持久化级别,反馈驱逐成功信号及驱逐信息具体包括:
若所述内存存储区可驱逐缓存数据的迁移地址为SSD,修改所述内存存储区可驱逐缓存数据的持久化级别为SSD_ONLY;
若所述内存存储区可驱逐缓存数据的迁移地址为HDD,修改所述内存存储区可驱逐缓存数据的持久化级别为HDD_ONLY;
修改完成,反馈所述内存存储区可驱逐缓存数据驱逐成功信号以及所述内存存储区可驱逐数据迁移信息,以使得所述RDD分区数据进入所述内存存储区,完成所述存储任务。
7.一种Spark分布式计算数据处理系统,其特征在于,所述系统包括:
申请存储模块,用于在对用户已标识缓存的弹性分布式数据集RDD分区数据执行存储任务时,若向Spark的内存存储区申请空间失败,则向驱逐逻辑单元发送驱逐所述内存存储区可驱逐缓存数据的命令;
计算分址模块,用于计算所述内存存储区内可驱逐空间大小,若驱逐后空间大小满足所述存储任务对所述内存存储区空间的要求,则根据所述内存存储区可驱逐缓存数据访问热度设置基于SSD和HDD的混合存储系统的迁移地址;
数据迁移模块,用于读取并释放所述内存存储区内可驱逐缓存数据,迁移所述内存存储区内可驱逐缓存数据到所述迁移地址,修改所述内存存储区内可驱逐缓存数据持久化级别,反馈驱逐成功信号及驱逐信息。
8.根据权利要求7所述的系统,其特征在于,所述申请存储模块包括:
第一申请模块,用于计算所述对RDD分区数据执行存储任务所占用所述内存存储区空间的大小,向所述Spark内存存储区申请空间,并与所述内存存储区未占用空间作比较;
第一反馈模块,用于若所述存储任务所占用所述内存存储区空间的大小大于所述内存存储区未占用空间,则向Spark内存存储区申请空间失败,同时向所述驱逐逻辑单元发送驱逐所述所述内存存储区可驱逐缓存数据的命令以及发送所述存储任务需要占用所述内存存储区空间的大小。
9.根据权利要求7所述的系统,其特征在于,所述计算分址模块包括;
第二申请模块,用于所述驱逐逻辑单元接收到驱逐命令,同时所述驱逐逻辑单元向所述内存存储区发出由于所述RDD分区数据执行存储任务所需存储空间不足需要驱逐空间的申请,若所述申请申请成功,则按近期最少使用算法LRU策略计算所述内存存储区内可驱逐空间大小;
设置迁移地址模块,用于若所述驱逐后所述内存存储区未占用空间大小大于等于所述RDD分区数据执行存储任务需要占用空间大小,根据所述内存存储区可驱逐缓存数据访问热度设置基于SSD和HDD的混合存储系统的迁移地址,并将所述内存存储区可驱逐缓存数据迁移信息和所述内存存储区可驱逐缓存数据迁移命令发送至缓存数据迁移单元;
第二反馈模块,用于若所述驱逐后所述内存存储区未占用空间大小小于所述RDD分区数据执行存储任务需要占用空间大小,则终止所述内存存储区可驱逐缓存数据迁移任务,并反馈驱逐所述内存存储区可驱逐缓存数据失败信号;
SSD迁移地址模块,用于若所述内存存储区可驱逐缓存数据访问热度在第一预置热度数值范围内,则读取SSD地址并将读取到的SSD地址设置为所述迁移地址;
HDD迁移地址模块,用于若所述内存存储区可驱逐缓存数据访问热度在第二预置热度数值范围内,则读取HDD地址并将读取到的HDD地址设置为所述迁移地址。
10.根据权利要求7所述的系统,其特征在于,所述数据迁移模块包括:
数据迁移模块,所述缓存数据迁移单元接收到所述内存存储区可驱逐缓存数据迁移信息和所述内存存储区可驱逐缓存数据迁移命令后,将所述内存存储区可驱逐数据按所述迁移信息存储到SSD或HDD;
第三反馈模块,用于向所述驱逐逻辑单元发送所述内存存储区可驱逐缓存数据迁移完成信号;
SSD持久化级别模块,用于若所述内存存储区可驱逐缓存数据的迁移地址为SSD,修改所述内存存储区可驱逐缓存数据的持久化级别为SSD_ONLY;
HDD持久化级别模块,用于若所述内存存储区可驱逐缓存数据的迁移地址为HDD,修改所述内存存储区可驱逐缓存数据的持久化级别为HDD_ONLY;
第四反馈模块,用于反馈所述内存存储区可驱逐缓存数据驱逐成功信号以及所述内存存储区可驱逐数据迁移信息,以使得所述RDD分区数据进入所述内存存储区,完成所述存储任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710742728.5A CN107526546B (zh) | 2017-08-25 | 2017-08-25 | 一种Spark分布式计算数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710742728.5A CN107526546B (zh) | 2017-08-25 | 2017-08-25 | 一种Spark分布式计算数据处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107526546A true CN107526546A (zh) | 2017-12-29 |
CN107526546B CN107526546B (zh) | 2020-09-11 |
Family
ID=60682402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710742728.5A Active CN107526546B (zh) | 2017-08-25 | 2017-08-25 | 一种Spark分布式计算数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107526546B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762921A (zh) * | 2018-05-18 | 2018-11-06 | 电子科技大学 | 一种Spark集群系统的在线优化分区的任务调度方法及装置 |
CN109634520A (zh) * | 2018-11-29 | 2019-04-16 | 南京航空航天大学 | 一种基于hdfs光盘库的存储系统 |
CN109947778A (zh) * | 2019-03-27 | 2019-06-28 | 联想(北京)有限公司 | 一种Spark存储方法及系统 |
CN110309116A (zh) * | 2018-03-19 | 2019-10-08 | 北京京东尚科信息技术有限公司 | 数据处理方法和装置 |
CN110442309A (zh) * | 2019-07-24 | 2019-11-12 | 广东紫晶信息存储技术股份有限公司 | 一种基于光存储的冷热数据交换方法及系统 |
CN110543367A (zh) * | 2019-08-30 | 2019-12-06 | 联想(北京)有限公司 | 资源处理方法及其装置、电子设备和介质 |
WO2020006771A1 (zh) * | 2018-07-06 | 2020-01-09 | 华为技术有限公司 | 一种文件系统调整方法及设备 |
CN111506399A (zh) * | 2020-03-05 | 2020-08-07 | 百度在线网络技术(北京)有限公司 | 任务迁移方法、装置、电子设备及存储介质 |
CN112732190A (zh) * | 2021-01-07 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种数据存储结构优化的方法、系统及介质 |
CN112799597A (zh) * | 2021-02-08 | 2021-05-14 | 东北大学 | 面向流数据处理的分级存储容错方法 |
CN112905854A (zh) * | 2021-03-05 | 2021-06-04 | 北京中经惠众科技有限公司 | 数据处理方法、装置、计算设备及存储介质 |
CN113590045A (zh) * | 2021-08-03 | 2021-11-02 | 中国联合网络通信集团有限公司 | 数据分层式存储方法、装置及存储介质 |
CN115145841A (zh) * | 2022-07-18 | 2022-10-04 | 河南大学 | 一种应用于Spark计算平台中的降低内存争用的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631730A (zh) * | 2013-11-01 | 2014-03-12 | 深圳清华大学研究院 | 内存计算的缓存优化方法 |
CN104794064A (zh) * | 2015-04-21 | 2015-07-22 | 华中科技大学 | 一种基于区域热度的缓存管理方法 |
-
2017
- 2017-08-25 CN CN201710742728.5A patent/CN107526546B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631730A (zh) * | 2013-11-01 | 2014-03-12 | 深圳清华大学研究院 | 内存计算的缓存优化方法 |
CN104794064A (zh) * | 2015-04-21 | 2015-07-22 | 华中科技大学 | 一种基于区域热度的缓存管理方法 |
Non-Patent Citations (1)
Title |
---|
陆克中等: "面向固态硬盘的Spark数据持久化方法设计", 《计算机研究与发展》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309116A (zh) * | 2018-03-19 | 2019-10-08 | 北京京东尚科信息技术有限公司 | 数据处理方法和装置 |
CN108762921A (zh) * | 2018-05-18 | 2018-11-06 | 电子科技大学 | 一种Spark集群系统的在线优化分区的任务调度方法及装置 |
WO2020006771A1 (zh) * | 2018-07-06 | 2020-01-09 | 华为技术有限公司 | 一种文件系统调整方法及设备 |
CN109634520B (zh) * | 2018-11-29 | 2021-12-07 | 南京航空航天大学 | 一种基于hdfs光盘库的存储系统 |
CN109634520A (zh) * | 2018-11-29 | 2019-04-16 | 南京航空航天大学 | 一种基于hdfs光盘库的存储系统 |
CN109947778A (zh) * | 2019-03-27 | 2019-06-28 | 联想(北京)有限公司 | 一种Spark存储方法及系统 |
CN110442309A (zh) * | 2019-07-24 | 2019-11-12 | 广东紫晶信息存储技术股份有限公司 | 一种基于光存储的冷热数据交换方法及系统 |
CN110543367A (zh) * | 2019-08-30 | 2019-12-06 | 联想(北京)有限公司 | 资源处理方法及其装置、电子设备和介质 |
CN110543367B (zh) * | 2019-08-30 | 2022-07-26 | 联想(北京)有限公司 | 资源处理方法及其装置、电子设备和介质 |
CN111506399A (zh) * | 2020-03-05 | 2020-08-07 | 百度在线网络技术(北京)有限公司 | 任务迁移方法、装置、电子设备及存储介质 |
CN111506399B (zh) * | 2020-03-05 | 2024-03-22 | 百度在线网络技术(北京)有限公司 | 任务迁移方法、装置、电子设备及存储介质 |
US11822957B2 (en) | 2020-03-05 | 2023-11-21 | Baidu Online Network Technology (Beijing) Co., Ltd. | Task migration method, apparatus, electronic device and storage medium |
CN112732190B (zh) * | 2021-01-07 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种数据存储结构优化的方法、系统及介质 |
CN112732190A (zh) * | 2021-01-07 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种数据存储结构优化的方法、系统及介质 |
CN112799597A (zh) * | 2021-02-08 | 2021-05-14 | 东北大学 | 面向流数据处理的分级存储容错方法 |
CN112905854A (zh) * | 2021-03-05 | 2021-06-04 | 北京中经惠众科技有限公司 | 数据处理方法、装置、计算设备及存储介质 |
CN113590045A (zh) * | 2021-08-03 | 2021-11-02 | 中国联合网络通信集团有限公司 | 数据分层式存储方法、装置及存储介质 |
CN113590045B (zh) * | 2021-08-03 | 2023-05-16 | 中国联合网络通信集团有限公司 | 数据分层式存储方法、装置及存储介质 |
CN115145841A (zh) * | 2022-07-18 | 2022-10-04 | 河南大学 | 一种应用于Spark计算平台中的降低内存争用的方法 |
CN115145841B (zh) * | 2022-07-18 | 2023-05-12 | 河南大学 | 一种应用于Spark计算平台中的降低内存争用的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107526546B (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107526546A (zh) | 一种Spark分布式计算数据处理方法及系统 | |
CN103246616B (zh) | 一种长短周期访问频度的全局共享缓存替换方法 | |
CN105205014B (zh) | 一种数据存储方法和装置 | |
CN108021451B (zh) | 一种雾计算环境下的自适应容器迁移方法 | |
CN104272244B (zh) | 用于对处理进行调度以实现空间节省的系统、方法 | |
CN109783237A (zh) | 一种资源配置方法及装置 | |
CN105391654A (zh) | 基于账户活跃度的系统资源分配方法及装置 | |
US11093410B2 (en) | Cache management method, storage system and computer program product | |
CN104102693A (zh) | 对象处理方法和装置 | |
CN110750351B (zh) | 多核任务调度器、多核任务调度方法、装置及相关产品 | |
CN109754359A (zh) | 一种应用于卷积神经网络的池化处理的方法及系统 | |
CN103150245B (zh) | 确定数据实体的访问特性的方法和存储控制器 | |
CN108334460B (zh) | 数据缓存方法及装置 | |
CN111047140A (zh) | 一种处理方法、装置及设备 | |
CN111984400A (zh) | 神经网络的内存分配方法及装置 | |
CN107851059A (zh) | 提高效率的智能存储器架构 | |
CN111737168A (zh) | 一种缓存系统、缓存处理方法、装置、设备及介质 | |
CN106775493A (zh) | 一种存储控制器及io请求处理方法 | |
CN108038236A (zh) | 文件共享方法、装置、系统及可读存储介质 | |
CN110489063A (zh) | 缓存过期时间的设置方法、装置、电子设备及存储介质 | |
CN106708615A (zh) | 一种应用的管理方法及终端 | |
KR20170065085A (ko) | 시스템 리소스 관리를 위한 방법 및 장치 | |
CN104503924B (zh) | 一种分层存储系统中的区域分配方法及装置 | |
WO2021115082A1 (zh) | 作业调度方法以及作业调度装置 | |
CN109783000A (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 |