当前位置: 首页 > 专利查询>深圳大学专利>正文

一种Spark负载访存行为追踪方法及装置制造方法及图纸

技术编号:17047745 阅读:57 留言:0更新日期:2018-01-17 17:42
一种Spark负载访存行为追踪方法,包括:在执行区,在UnsafeShuffleWriter对象的hashcode、第一被访问数据的RDD信息以及ShuffleExternalSorter对象的hashcode之间建立对应关系;获取第一被访问数据的虚拟地址和物理地址的相关信息,并根据UnsafeShuffleWriter对象的hashcode、第一被访问数据的RDD信息以及ShuffleExternalSorter对象的hashcode之间的对应关系,得到第一被访问数据的RDD信息、虚拟地址的相关信息和物理地址的相关信息的对应关系并保存在文件中;在存储区,当对MemoryStore维护的哈希表执行存储或读取操作时,获取存储或读取操作对应的第二被访问数据的RDD信息、虚拟地址的相关信息及物理地址的相关信息,然后将上述三者之间的对应关系保存在文件中。本发明专利技术还提供一种Spark负载访存行为追踪装置,可打通Spark、JVM、OS三层,使Spark语义一直延伸到硬件层。

A method and device for tracking memory behavior of Spark load

A load of Spark memory access behavior tracking method, including: in the implementation area, establish relationship between objects in UnsafeShuffleWriter hashcode, the first is to access the data and information of the ShuffleExternalSorter object RDD hashcode; access to relevant information is the first access address and the physical address of the virtual data, and according to the relationship between the UnsafeShuffleWriter object hashcode first, the data is accessed the RDD information and the ShuffleExternalSorter object hashcode, corresponding relationship between the relevant information RDD information, the virtual address of the first accessed data and related information of the physical address and stored in the file; in the storage area, when the MemoryStore maintain a hash table for executing stored or read operation, RDD information the virtual address, access storage or read operation corresponding to the second phase of the data being accessed Close the information and physical address related information, and then save the corresponding relationship between the above three in the file. The invention also provides a Spark load tracking device tracking device that can open three layers of Spark, JVM, and OS to extend the Spark semantics to the hardware layer.

【技术实现步骤摘要】
一种Spark负载访存行为追踪方法及装置
本专利技术涉及数据处理
,尤其涉及一种Spark负载访存行为追踪方法及装置。
技术介绍
Spark是专为大规模数据处理而设计的快速通用的计算引擎。内存计算是Spark的重要特征,即数据的存储和处理都在内存之中。因此,一款Spark应用程序的特征,很大程度反映在它对内存的使用行为上。与JVM(JavaVirtualMachine,Java虚拟机)一样,Spark也有着自己的内存管理机制。图1展示了Spark系统中各层的内存语义。如图1所示,Spark将所管理的内存分为Execution区(执行区)和Storage区(存储区)两部分。Execution区为中间数据结果的处理提供缓存,Storage区用于存储数据。Spark所管理的内存,可以来自JVM堆,也可以直接从操作系统获得。对Spark应用进行性能分析时,图1所示的每一层中都有追踪工具可以利用,但现有的追踪工具的结果之间是独立的,彼此之间无法建立联系。因此,无法系统地了解Saprk负载访存行为在Spark、JVM、OS(OperatingSystem,操作系统)三层的内在联系,从而较难对Spark应用进行性能分析。
技术实现思路
本专利技术的主要目的在于提供一种Spark负载访存行为追踪方法及装置,可打通Spark、JVM、OS三层,将Spark语义和各层性能指标建立联系,从而方便对Spark应用进行性能分析。为实现上述目的,本专利技术实施例第一方面提供了一种Spark负载访存行为追踪方法,Spark管理的内存包括执行区和存储区,所述方法包括:在所述执行区,当所述Spark启动ShuffleMapTask线程对第一被访问数据进行处理时,在所述ShuffleMapTask线程调用的UnsafeShuffleWriter对象的哈希码值、所述第一被访问数据的RDD信息以及所述UnsafeShuffleWriter调用的ShuffleExternalSorter对象的哈希码值之间建立对应关系;获取所述ShuffleExternalSorter为所述第一被访问数据申请的虚拟地址的相关信息以及所述虚拟地址对应的物理地址的相关信息,并根据所述UnsafeShuffleWriter对象的哈希码值、所述第一被访问数据的RDD信息以及所述ShuffleExternalSorter对象的哈希码值之间的对应关系,得到所述第一被访问数据的RDD信息、虚拟地址的相关信息以及物理地址的相关信息之间的对应关系,并保存在文件中;在所述存储区,当对MemoryStore维护的哈希表执行存储或读取操作时,获取所述存储或读取操作的对象,并根据所述对象得到所述存储或读取操作对应的第二被访问数据的虚拟地址的相关信息以及所述第二被访问数据的虚拟地址对应的物理地址的相关信息,所述哈希表以BlockId为键,以MemoryEntry为值,所述对象包括所述第二被访问数据的BlockId和MemoryEntry;将所述第二被访问数据的RDD信息、虚拟地址的相关信息以及物理地址的相关信息之间的对应关系,保存在所述文件中,所述第二被访问数据的RDD信息包括获取的BlockId。本专利技术实施例第二方面提供了一种Spark负载访存行为追踪装置,Spark管理的内存包括执行区和存储区,所述装置包括:建立单元,用于在所述执行区,当所述Spark启动ShuffleMapTask线程对第一被访问数据进行处理时,在所述ShuffleMapTask线程调用的UnsafeShuffleWriter对象的哈希码值、所述第一被访问数据的RDD信息以及所述UnsafeShuffleWriter调用的ShuffleExternalSorter对象的哈希码值之间建立对应关系;第一追踪单元,用于获取所述ShuffleExternalSorter为所述第一被访问数据申请的虚拟地址的相关信息以及所述虚拟地址对应的物理地址的相关信息,并根据所述UnsafeShuffleWriter对象的哈希码值、所述第一被访问数据的RDD信息以及所述ShuffleExternalSorter对象的哈希码值之间的对应关系,得到所述第一被访问数据的RDD信息、虚拟地址的相关信息以及物理地址的相关信息之间的对应关系;保存单元,用于将所述第一被访问数据的RDD信息、虚拟地址的相关信息以及物理地址的相关信息之间的对应关系保存在文件中;第二追踪单元,用于在所述存储区,当对MemoryStore维护的哈希表执行存储或读取操作时,获取所述存储或读取操作的对象,并根据所述对象得到所述存储或读取操作对应的第二被访问数据的虚拟地址的相关信息以及所述第二被访问数据的虚拟地址对应的物理地址的相关信息,所述哈希表以BlockId为键,以MemoryEntry为值,所述对象包括所述第二被访问数据的BlockId和MemoryEntry;所述保存单元,还用于将所述第二被访问数据的RDD信息、虚拟地址的相关信息以及物理地址的相关信息之间的对应关系,保存在所述文件中,所述第二被访问数据的RDD信息包括获取的BlockId。本专利技术实施例中,通过针对执行区和存储区采用不同的追踪策略,打通了Spark、JVM、OS三层,使Spark语义一直延伸到硬件层,从而很容易地得到Spark访存行为是什么样的,对应的物理内存是如何响应的,这对于理解程序行为对性能的影响十分重要。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中Spark系统中各层的内存语义的示意图;图2为本专利技术一实施例提供的Spark负载访存行为追踪方法中对Spark的执行区的访存行为进行追踪的实现流程示意图;图3为本专利技术一实施例提供的Spark负载访存行为追踪方法中对Spark的存储区的访存行为进行追踪的实现流程示意图;图4为本专利技术另一实施例提供的Spark负载访存行为追踪方法中对Spark的执行区的访存行为进行追踪的实现流程示意图;图5为本专利技术另一实施例提供的Spark负载访存行为追踪方法中对Spark的存储区的访存行为进行追踪的实现流程示意图;图6为本专利技术实施例提供的Spark负载访存行为追踪方法中追踪结果的示意图;图7为通过本专利技术实施例提供的Spark负载访存行为追踪方法将Spark语义延伸至硬件的工作流程示意图;图8为本专利技术一实施例提供的Spark负载访存行为追踪装置的结构示意图。具体实施方式为使得本专利技术的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而非全部实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术一实施例提供了一种Spark负载访存行为追踪方法,对Spark的执行区和存储区分别执行不同的追踪策略。其中,对执行区的追踪策略请参阅图2,对存储区的追踪策略请参阅图3。请参本文档来自技高网...
一种Spark负载访存行为追踪方法及装置

【技术保护点】
一种Spark负载访存行为追踪方法,Spark管理的内存包括执行区和存储区,其特征在于,所述方法包括:在所述执行区,当所述Spark启动ShuffleMapTask线程对第一被访问数据进行处理时,在所述ShuffleMapTask线程调用的UnsafeShuffleWriter对象的哈希码值、所述第一被访问数据的RDD信息以及所述UnsafeShuffleWriter调用的ShuffleExternalSorter对象的哈希码值之间建立对应关系;获取所述ShuffleExternalSorter为所述第一被访问数据申请的虚拟地址的相关信息以及所述虚拟地址对应的物理地址的相关信息,并根据所述UnsafeShuffleWriter对象的哈希码值、所述第一被访问数据的RDD信息以及所述ShuffleExternalSorter对象的哈希码值之间的对应关系,得到所述第一被访问数据的RDD信息、虚拟地址的相关信息以及物理地址的相关信息之间的对应关系,并保存在文件中;在所述存储区,当对MemoryStore维护的哈希表执行存储或读取操作时,获取所述存储或读取操作的对象,并根据所述对象得到所述存储或读取操作对应的第二被访问数据的虚拟地址的相关信息以及所述第二被访问数据的虚拟地址对应的物理地址的相关信息,所述哈希表以BlockId为键,以MemoryEntry为值,所述对象包括所述第二被访问数据的BlockId和MemoryEntry;将所述第二被访问数据的RDD信息、虚拟地址的相关信息以及物理地址的相关信息之间的对应关系,保存在所述文件中,所述第二被访问数据的RDD信息包括获取的BlockId。...

【技术特征摘要】
1.一种Spark负载访存行为追踪方法,Spark管理的内存包括执行区和存储区,其特征在于,所述方法包括:在所述执行区,当所述Spark启动ShuffleMapTask线程对第一被访问数据进行处理时,在所述ShuffleMapTask线程调用的UnsafeShuffleWriter对象的哈希码值、所述第一被访问数据的RDD信息以及所述UnsafeShuffleWriter调用的ShuffleExternalSorter对象的哈希码值之间建立对应关系;获取所述ShuffleExternalSorter为所述第一被访问数据申请的虚拟地址的相关信息以及所述虚拟地址对应的物理地址的相关信息,并根据所述UnsafeShuffleWriter对象的哈希码值、所述第一被访问数据的RDD信息以及所述ShuffleExternalSorter对象的哈希码值之间的对应关系,得到所述第一被访问数据的RDD信息、虚拟地址的相关信息以及物理地址的相关信息之间的对应关系,并保存在文件中;在所述存储区,当对MemoryStore维护的哈希表执行存储或读取操作时,获取所述存储或读取操作的对象,并根据所述对象得到所述存储或读取操作对应的第二被访问数据的虚拟地址的相关信息以及所述第二被访问数据的虚拟地址对应的物理地址的相关信息,所述哈希表以BlockId为键,以MemoryEntry为值,所述对象包括所述第二被访问数据的BlockId和MemoryEntry;将所述第二被访问数据的RDD信息、虚拟地址的相关信息以及物理地址的相关信息之间的对应关系,保存在所述文件中,所述第二被访问数据的RDD信息包括获取的BlockId。2.如权利要求1所述的方法,其特征在于,所述在所述ShuffleMapTask线程调用的UnsafeShuffleWriter对象的哈希码值、所述第一被访问数据的RDD信息以及所述UnsafeShuffleWriter调用的ShuffleExternalSorter对象的哈希码值之间建立对应关系,具体包括:将所述ShuffleMapTask线程调用的UnsafeShuffleWriter对象的哈希码值和所述第一被访问数据的RDD信息传给追踪模块,通过所述追踪模块将所述UnsafeShuffleWriter对象的哈希码值和所述第一被访问数据的RDD信息写入第一哈希表,所述第一哈希表以所述UnsafeShuffleWriter对象的哈希码值为键,以所述第一被访问数据的RDD信息为值;将所述UnsafeShuffleWriter对象的哈希码值和所述UnsafeShuffleWriter调用的ShuffleExternalSorter对象的哈希码值传给所述追踪模块,通过所述追踪模块将所述UnsafeShuffleWriter对象的哈希码值和所述ShuffleExternalSorter对象的哈希码值写入第二哈希表,所述第二哈希表以所述ShuffleExternalSorter对象的哈希码值为键,以所述UnsafeShuffleWriter对象的哈希码值为值。3.如权利要求2所述的方法,其特征在于,所述第一被访问数据的虚拟地址的相关信息包括所述第一被访问数据的虚拟地址及其对应的虚拟页信息;所述获取所述ShuffleExternalSorter为所述第一被访问数据申请的虚拟地址的相关信息以及所述虚拟地址对应的物理地址的相关信息,并根据所述UnsafeShuffleWriter对象的哈希码值、所述第一被访问数据的RDD信息以及所述ShuffleExternalSorter对象的哈希码值之间的对应关系,得到所述第一被访问数据的RDD信息、虚拟地址的相关信息以及物理地址的相关信息之间的对应关系,并保存在文件中,具体包括:将所述ShuffleExternalSorter对象的哈希码值和为所述第一被访问数据申请的虚拟地址传给所述追踪模块;通过所述追踪模块,在所述第二哈希表中查找与所述ShuffleExternalSorter对象的哈希码值对应的所述UnsafeShuffleWriter对象的哈希码值;通过所述追踪模块,在所述第一哈希表中查找与所述UnsafeShuffleWriter对象的哈希码值对应的所述第一被访问数据的RDD信息;通过所述追踪模块,访问操作系统页表,得到与所述虚拟地址对应的虚拟页信息以及物理地址的相关信息;通过追踪模块,将所述第一被访问数据的RDD信息、虚拟地址、虚拟页信息以及物理地址的相关信息合成一条记录,并保存在所述文件中。4.如权利要求1所述的方法,其特征在于,所述第二被访问数据的虚拟地址的相关信息包括所述第二被访问数据的虚拟地址及其对应的虚拟页信息;所述当对MemoryStore维护的哈希表执行存储或读取操作时,获取所述存储或读取操作的对象,并根据所述对象得到所述存储或读取操作对应的第二被访问数据的虚拟地址的相关信息以及所述第二被访问数据的虚拟地址对应的物理地址的相关信息,具体包括:当对MemoryStore维护的哈希表执行存储或读取操作时,将存储或读取的所述哈希表中的BlockId和MemoryEntry传给所述追踪模块;通过所述追踪模块,获取所述MemoryEntry的成员变量ByteBuffer数组;通过所述追踪模块,利用Unsafe类提供的接口,获取所述ByteBuffer数组中每一个ByteBuffer对象的成员变量hb的值,所述成员变量hb的值为字节数组在JVM堆中的起始地址;将所述成员变量hb的值与所述JVM堆的头信息的长度相加,得到所述第二被访问数据的虚拟地址;通过访问操作系统页表,得到所述第二被访问数据的...

【专利技术属性】
技术研发人员:毛睿陆敏华陆克中罗秋明刘刚李荣华廖好周明洋王利王晶隋秀峰
申请(专利权)人:深圳大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1