CN117271073A - 计算任务的执行方法及装置 - Google Patents

计算任务的执行方法及装置 Download PDF

Info

Publication number
CN117271073A
CN117271073A CN202210682184.9A CN202210682184A CN117271073A CN 117271073 A CN117271073 A CN 117271073A CN 202210682184 A CN202210682184 A CN 202210682184A CN 117271073 A CN117271073 A CN 117271073A
Authority
CN
China
Prior art keywords
data
computing
task
memory
cluster
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
Application number
CN202210682184.9A
Other languages
English (en)
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.)
SF Technology Co Ltd
Original Assignee
SF Technology Co Ltd
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 SF Technology Co Ltd filed Critical SF Technology Co Ltd
Priority to CN202210682184.9A priority Critical patent/CN117271073A/zh
Priority to PCT/CN2023/112949 priority patent/WO2023241740A1/zh
Publication of CN117271073A publication Critical patent/CN117271073A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种计算任务的执行方法及装置,该计算任务的执行方法包括:获取所述资源调度服务器分配的数据计算任务;当获取到基于所述数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与所述数据读取请求匹配的文件块,其中,所述内存以列存储的方式存储有多个文件块,所述文件块由文件拆分而来;若所述自身内存中存储有与所述数据读取请求匹配的文件块,则读取与所述数据读取请求匹配的多个文件块;基于读取的所述多个文件块执行所述数据计算任务,得到数据计算结果。本申请可以减小数据读取量,从而提高计算任务的执行效率。

Description

计算任务的执行方法及装置
技术领域
本申请主要涉及数据计算技术领域,具体涉及一种计算任务的执行方法及装置。
背景技术
随着大数据技术的不断演进,已经逐渐发展出多种分布式文件系统,例如目前比较流行的分布式内存文件系统Alluxio等等。但是分布式内存文件系统Alluxio存在一个问题,当任务进行跨机房计算读取文件的几个字节数据,它会将整个文件读取,造成了没必要的网络带宽与内存消耗,从而降低了计算任务的执行效率。
也即,现有技术中计算任务的执行效率较低。
发明内容
本申请提供一种计算任务的执行方法及装置,旨在解决现有技术中计算任务的执行效率较低的问题。
第一方面,本申请提供一种计算任务的执行方法,应用于数据计算集群,所述数据计算集群包括资源调度服务器和与所述资源调度服务器连接的多个计算节点,所述计算任务的执行方法的执行主体为所述计算节点,所述计算任务的执行方法包括:
获取所述资源调度服务器分配的数据计算任务;
当获取到基于所述数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与所述数据读取请求匹配的文件块,其中,所述内存以列存储的方式存储有多个文件块,所述文件块由文件拆分而来;
若所述自身内存中存储有与所述数据读取请求匹配的文件块,则读取与所述数据读取请求匹配的多个文件块;
基于读取的所述多个文件块执行所述数据计算任务,得到数据计算结果。
可选地,所述数据计算集群包括与所述多个计算节点网络连接的存储服务器,所述计算任务的执行方法包括:
若所述自身内存中未存储有与所述数据读取请求匹配的文件块,则从存储服务器读取与所述数据读取请求匹配的多个文件块,其中,所述存储服务器以列存储的方式存储文件;
基于从所述存储服务器读取的多个文件块执行所述数据计算任务,得到数据计算结果;
将从所述存储服务器读取的多个文件块以列存储的方式存储于自身内存中。
可选地,所述计算任务的执行方法包括:
按第一预设周期获取当前时间和自身内存中各个文件块的最近访问时间;
将最近访问时间与当前时间之差超过预设时长的文件块剔除,以更新自身内存中各个文件块。
第二方面,本申请提供一种计算任务的执行方法,应用于数据计算集群,所述数据计算集群包括资源调度服务器和与所述资源调度服务器连接的多个计算节点,所述计算任务的执行方法的执行主体为所述资源调度服务器,所述计算任务的执行方法包括:
获取多个数据计算任务;
将所述多个数据计算任务分配至各个计算节点;
获取各个计算节点执行分配到的数据计算任务返回的数据计算结果,其中,所述计算节点根据第一方面任意一项所述的计算任务的执行方法执行所述数据计算任务。
可选地,所述计算任务的执行方法包括:
按第二预设周期获取数据计算集群的集群等待分配资源指标,其中,所述集群等待分配资源指标用于表示集群中等待分配资源的大小;
当集群等待分配资源指标大于预设值时,增加所述数据计算集群中的计算节点;当集群等待分配资源指标不大于预设值时,减小所述数据计算集群中的计算节点。
可选地,所述将所述多个数据计算任务分配至各个计算节点,包括:
基于预设的哈希值空间构建哈希值圆环;
分别计算各个计算节点的节点哈希值和各个数据计算任务的任务哈希值;
将各个节点哈希值和各个任务哈希值映射在所述哈希值圆环上;
在所述哈希值圆环上将数据计算任务分配至与数据计算任务的任务哈希值最近的节点哈希值所对应的计算节点上。
第三方面,本申请提供一种计算任务的执行装置,应用于数据计算集群,所述数据计算集群包括资源调度服务器和与所述资源调度服务器连接的多个计算节点,所述计算任务的执行装置集成于所述计算节点,所述计算任务的执行装置包括:
获取单元,用于获取所述资源调度服务器分配的数据计算任务;
匹配单元,用于当获取到基于所述数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与所述数据读取请求匹配的文件块,其中,所述内存以列存储的方式存储有多个文件块,所述文件块由文件拆分而来;
读取单元,用于若所述自身内存中存储有与所述数据读取请求匹配的文件块,则读取与所述数据读取请求匹配的多个文件块;
执行单元,用于基于读取的所述多个文件块执行所述数据计算任务,得到数据计算结果。
可选地,所述数据计算集群包括与所述多个计算节点网络连接的存储服务器,所述读取单元,用于:
若所述自身内存中未存储有与所述数据读取请求匹配的文件块,则从存储服务器读取与所述数据读取请求匹配的多个文件块,其中,所述存储服务器以列存储的方式存储文件;
基于从所述存储服务器读取的多个文件块执行所述数据计算任务,得到数据计算结果;
将从所述存储服务器读取的多个文件块以列存储的方式存储于自身内存中。
可选地,所述执行单元,用于:
按第一预设周期获取当前时间和自身内存中各个文件块的最近访问时间;
将最近访问时间与当前时间之差超过预设时长的文件块剔除,以更新自身内存中各个文件块。
第四方面,本申请提供一种计算任务的执行装置,应用于数据计算集群,所述数据计算集群包括资源调度服务器和与所述资源调度服务器连接的多个计算节点,所述计算任务的执行装置集成于所述资源调度服务器,所述计算任务的执行装置包括:
第一获取单元,用于获取多个数据计算任务;
分配单元,用于将所述多个数据计算任务分配至各个计算节点;
第二获取单元,用于获取各个计算节点执行分配到的数据计算任务返回的数据计算结果,其中,所述计算节点根据第一方面任意一项所述的计算任务的执行方法执行所述数据计算任务。
可选地,所述第二获取单元,还用于:
按第二预设周期获取数据计算集群的集群等待分配资源指标,其中,所述集群等待分配资源指标用于表示集群中等待分配资源的大小;
当集群等待分配资源指标大于预设值时,增加所述数据计算集群中的计算节点;当集群等待分配资源指标不大于预设值时,减小所述数据计算集群中的计算节点。
可选地,所述分配单元,还用于:
基于预设的哈希值空间构建哈希值圆环;
分别计算各个计算节点的节点哈希值和各个数据计算任务的任务哈希值;
将各个节点哈希值和各个任务哈希值映射在所述哈希值圆环上;
在所述哈希值圆环上将数据计算任务分配至与数据计算任务的任务哈希值最近的节点哈希值所对应的计算节点上。
第五方面,本申请提供一种计算节点,所述计算节点包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现第一方面中任一项所述的计算任务的执行方法。
第六方面,本申请提供一种资源调度服务器,所述资源调度服务器包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现第二方面中任一项所述的计算任务的执行方法。
第七方面,本申请提供一种数据计算集群,所述数据计算集群包括资源调度服务器和与所述资源调度服务器连接的多个计算节点,所述计算节点用于执行第一方面中任一项所述的计算任务的执行方法,所述资源调度服务器用于执行第二方面中任一项所述的计算任务的执行方法。
第八方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行第一方面中任一项所述的计算任务的执行方法中的步骤或者第二方面中任一项所述的计算任务的执行方法中的步骤。
本申请提供一种计算任务的执行方法及装置,该计算任务的执行方法包括:获取所述资源调度服务器分配的数据计算任务;当获取到基于所述数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与所述数据读取请求匹配的文件块,其中,所述内存以列存储的方式存储有多个文件块,所述文件块由文件拆分而来;若所述自身内存中存储有与所述数据读取请求匹配的文件块,则读取与所述数据读取请求匹配的多个文件块;基于读取的所述多个文件块执行所述数据计算任务,得到数据计算结果。本申请在现有技术仅需文件中的部分内容时会将整个文件读取,造成没必要的网络带宽与内存消耗,进而降低计算任务的执行效率的情况下,创造性的提出一种计算任务的执行方法,将文件拆分为多个文件块存储在内存中,在获取数据计算任务生成的数据读取请求时,直接在内存中查找对应的文件块,并在查找到对应的文件块时,直接读取对应的文件块执行计算任务,相对于对现有技术整个文件进行读取的方式,仅仅将文件中与数据读取请求匹配的多个文件块读取进行计算,可以减小数据读取量,从而提高计算任务的执行效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的数据计算集群的场景示意图;
图2是本申请实施例中提供的计算任务的执行方法的一个实施例流程示意图;
图3是本申请实施例中提供的计算任务的执行方法的另一个实施例流程示意图;
图4是本申请实施例中提供的计算任务的执行装置的一个实施例结构示意图;
图5是本申请实施例中提供的计算任务的执行装置的另一个实施例结构示意图;
图6是本申请实施例中提供的计算节点或资源调度服务器的一个实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
本申请实施例提供一种计算任务的执行方法及装置,以下分别进行详细说明。
请参阅图1,图1为本申请实施例所提供的数据计算集群的场景示意图,该数据计算集群包括资源调度服务器100和与资源调度服务器100连接的多个计算节点120。数据计算集群包括与多个计算节点120网络连接的存储服务器130。
本申请实施例中,计算节点120、存储服务器130以及资源调度服务器100可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本申请实施例中所描述的计算节点120、存储服务器130以及资源调度服务器100,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。
本申请实施例中,上述的客户端110可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中计算机设备100可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备等,本实施例不限定客户端的类型。
本领域技术人员可以理解,图1中示出的应用环境,仅仅是本申请方案的一种应用场景,并不构成对本申请方案应用场景的限定,可以理解的,该数据计算集群还可以包括一个或多个可处理数据的其他计算机设备,具体此处不作限定。
需要说明的是,图1所示的数据计算集群的场景示意图仅仅是一个示例,本申请实施例描述的数据计算集群以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着数据计算集群的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先,本申请实施例中提供一种计算任务的执行方法,该计算任务的执行方法包括:获取所述资源调度服务器分配的数据计算任务;当获取到基于所述数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与所述数据读取请求匹配的文件块,其中,所述内存以列存储的方式存储有多个文件块,所述文件块由文件拆分而来;若所述自身内存中存储有与所述数据读取请求匹配的文件块,则读取与所述数据读取请求匹配的多个文件块;基于读取的所述多个文件块执行所述数据计算任务,得到数据计算结果。
如图2所示,图2是本申请实施例中提供的计算任务的执行方法的一个实施例流程示意图。计算任务的执行方法应用于数据计算集群,数据计算集群包括资源调度服务器和与资源调度服务器连接的多个计算节点,计算任务的执行方法的执行主体为计算节点。该计算任务的执行方法包括如下步骤S201~S204:
S201、获取资源调度服务器分配的数据计算任务。
任务,是指计算机的一种术语。英文名task。
本申请实施例中,资源调度服务器获取各个客户端提交的数据计算任务,资源调度服务器将获取的数据计算任务分配至数据计算集群中的各个计算节点,各个计算节点获取资源调度服务器分配的数据计算任务。
S202、当获取数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与数据读取请求匹配的文件块。
内存(Memory)是计算机的重要部件,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。内存是CPU能直接寻址的存储空间,由半导体器件制成。特点是存取速率快。
其中,内存以列存储的方式存储有多个文件块,其中文件块由文件拆分而来。
在一个具体的实施例中,文件为Parquet文件,文件块为Parquet文件中的页(Page)。Parquet文件主要由Header,Footer和一系列行组(Row Group)组成,每个行组(RowGroup)由一系列的列块(Column Chunk)组成,页(Page)是组成列块(Column Chunk)的最小单位,也是数据保存的最小单位。行组(Row Group):每一个行组包含一定的行数,在一个HDFS文件中至少存储一个行组。列块(Column Chunk):在一个行组中每一列保存在一个列块中,行组中的所有列连续的存储在这个行组文件中。一个列块中的值都是相同类型的,不同的列块可能使用不同的算法进行压缩。页(Page):每一个列块划分为多个页,一个页是最小的编码的单位,一个列块的不同页可能使用不同的编码方式。
在其他实施例中,文件为Orc文件,文件块为条带数据块stripe。Orc(OptimizedRow Columnar)是Hive 0.11版里引入的新的存储格式。每个Orc文件由1个或多个条带数据块stripe组成,每个条带数据块stripe一般为HDFS的块大小,每一个条带数据块stripe包含多条记录,这些记录按照列进行独立存储,对应到Parquet中的row group的概念。
在一个具体的实施例中,计算节点在获取到分配的数据计算任务后,启动数据计算任务。计算节点在执行数据计算任务时会产生数据读取指令。当获取到基于数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与数据读取请求匹配的文件块。
S203、若自身内存中存储有与数据读取请求匹配的文件块,则读取与数据读取请求匹配的多个文件块。
若自身内存中存储有与数据读取请求匹配的文件块,则读取与数据读取请求匹配的多个文件块。由于内存具有快速读写的特点,从内存中直接获取与数据读取请求匹配的文件块进行计算,能够提高计算效率。另外,相对于对整个文件进行读取的方式,仅仅将文件中与数据读取请求匹配的多个文件块读取进行计算,可以减小数据读取量,从而提高计算效率。
具体的,获取数据读取请求中的数据读取路径和各个文件块的数据存储位置。其中,各个文件块的数据存储位置从各个文件块的元数据获取。元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。将数据读取路径与各个文件块的数据存储位置进行匹配,若存在数据存储位置与数据读取路径相同的文件块,则确定自身内存中存储有与数据读取请求匹配的文件块。若自身内存中存储有与数据读取请求匹配的文件块,则读取与数据读取请求匹配的多个文件块。
其中,通过ParquetFileReader线程读取与数据读取请求匹配的多个文件块。进一步的,ParquetFileReader线程包括ParquetColumFileReader线程和ParquetCacheColumnFileReader线程。通过ParquetCacheColumnFileReader线程读取与数据读取请求匹配的多个文件块。
S204、基于多个文件块执行数据计算任务,得到数据计算结果。
进一步的,将数据计算结果返回资源调度服务器,资源调度服务器将数据计算结果返回客户端。
进一步的,为了避免从内存读取不到数据导致计算失败,计算任务的执行方法还可以包括:
(1)若自身内存中未存储有与数据读取请求匹配的文件块,则从存储服务器读取与数据读取请求匹配的多个文件块,其中,存储服务器以列存储的方式存储文件。
其中,存储服务器与多个计算节点网络连接。存储服务器以Parquet文件的方式存储文件。存储服务器的数据存储量大于计算节点的存储量,且存储服务器的数据读取速度小于计算节点从自身内存读取数据的速度。存储服务器存储的文件块包含数据计算集群中所有计算节点在内存缓存的文件块。
若自身内存中未存储有与数据读取请求匹配的文件块,说明节点自身没有存储对应的文件块,需要从存储服务器获取数据,则从存储服务器读取与数据读取请求匹配的多个文件块。具体的,通过ParquetColumFileReader线程读取与数据读取请求匹配的多个文件块。
(2)基于从存储服务器读取的多个文件块执行数据计算任务,得到数据计算结果。
(3)将从存储服务器读取的多个文件块以列存储的方式存储于自身内存中。
将从存储服务器读取的多个文件块以列存储的方式存储于自身内存中。当计算节点再次执行相同的数据计算任务时,可以直接从自身内存读取,提高数据读取速度。
具体的,通过ParquetColumFileReader线程将从存储服务器读取的多个文件块以列存储的方式存储于自身内存中。
进一步的,为了对内存中的多个文件块进行动态管理,释放内存空间,提高内存的使用效率,进一步的,计算任务的执行方法还包括:
(1)按第一预设周期获取当前时间和自身内存中各个文件块的最近访问时间。
其中,第一预设周期可以为2分钟、3分钟等等,根据具体情况设定即可。
(2)将最近访问时间与当前时间之差超过预设时长的文件块剔除,以更新自身内存中各个文件块。
预设时长可以为1小时,2小时等等,根据具体情况设定。文件块的最近访问时间与当前时间之差超过预设时长,表明文件块较长时间没有被访问,将该文件块剔除,以更新自身内存中各个文件块,可以避免内存上文件块过多,从而提高内存的使用效率。
进一步的,为了避免一些常用的文件块误删,在一个具体的实施例中,计算任务的执行方法可以包括:按第一预设周期获取当前时间和自身内存中各个文件块的最近访问时间;分别判断各个文件块的最近访问时间与当前时间之差是否超过预设时长;将最近访问时间与当前时间之差超过预设时长的文件块作为待剔除文件块。获取各个待剔除文件块在历史时间段内的访问次数,其中,历史时间段的时间长度大于第一预设周期的时间长度,将各个待剔除文件块中访问次数低于预设次数的文件块剔除,以更新自身内存中各个文件块。将访问次数较低且最近访问时间较早的文件块剔除,可以更准确的剔除暂时不需要的文件块,避免将一些访问次数较高的文件块删除,在提高内存使用效率的同时,降低从存储服务器获取数据的概率,从而提高计算效率。
参阅图3,图3是本申请实施例中提供的计算任务的执行方法的另一个实施例流程示意图。计算任务的执行方法应用于数据计算集群,数据计算集群包括资源调度服务器和与资源调度服务器连接的多个计算节点,计算任务的执行方法的执行主体为资源调度服务器。该计算任务的执行方法包括如下步骤S301~S303:
S301、获取多个数据计算任务。
具体的,获取客户端发送的数据计算任务。
S302、将多个数据计算任务分配至各个计算节点。
在一个具体的实施例中,将多个数据计算任务平均分配至各个计算节点。
在另一个具体的实施例中,将多个数据计算任务分配至各个计算节点,可以包括:
(1)基于预设的哈希值空间构建哈希值圆环。
在一个具体的实施例中,预设的哈希值空间的取值范围为0~2^2-1。将整个哈希值空间按预设方向排列,使哈希值空间映射成一个虚拟的哈希值圆环,哈希值空间在零点重合。预设方向可以为顺时针方向,也可以为逆时针方向,根据具体情况选择即可。哈希值圆环上的一个点表示哈希值空间中的一个哈希值。
(2)分别计算各个计算节点的节点哈希值和各个数据计算任务的任务哈希值。
具体的,将各个计算节点的IP地址输入预设hash函数,得到各个计算节点的节点哈希值;将各个数据计算任务输入预设hash函数,得到各个数据计算任务的节点哈希值。
简单的说,hash函数就是把任意长的输入字符串变化成固定长的输出字符串的一种函数。输出字符串的长度称为hash函数的位数。预设hash函数可以是是SHA-1和MD5等。
(3)将各个节点哈希值和各个任务哈希值映射在哈希值圆环上。
(4)在哈希值圆环上将数据计算任务分配至与数据计算任务的任务哈希值最近的节点哈希值所对应的计算节点上。
进一步的,在哈希值圆环上沿预设方向将数据计算任务分配至与数据计算任务的任务哈希值最近的节点哈希值所对应的计算节点上。
S303、获取各个计算节点执行分配到的数据计算任务返回的数据计算结果。
其中,计算节点根据上一实施例中的计算任务的执行方法执行数据计算任务并返回数据计算结果。资源调度服务器获取各个计算节点执行分配到的数据计算任务返回的数据计算结果,并返回客户端。
进一步的,为了监测数据计算集群的中等待分配资源的大小,进而动态增减集群资源,降低集群成本同时提高任务的执行效率。在一个具体的实施例中,计算任务的执行方法还可以包括:
(1)按第二预设周期获取数据计算集群的集群等待分配资源指标。
其中,集群等待分配资源指标用于表示集群中等待分配资源的大小。第二预设周期根据具体情况设定。
在一个具体的实施例中,按第二预设周期获取数据计算集群的集群等待分配资源指标,包括:按第二预设周期获取数据计算集群的等待分配的内存大小和等待分配的核数量,基于预设的权重系数对等待分配的内存大小和等待分配的核数量进行加权求和,得到集群等待分配资源指标。数据计算集群的等待分配的内存大小用PendingMB表示,数据计算集群的的等待分配的核数量用PendingVCores表示。
(2)当集群等待分配资源指标大于预设值时,增加数据计算集群中的计算节点;当集群等待分配资源指标不大于预设值时,减小数据计算集群中的计算节点。
其中,预设值可以根据具体情况设定。通过动态增减集群中的计算节点,可以降低集群成本同时提高任务的执行效率。
为了更好实施本申请实施例中计算任务的执行方法,在计算任务的执行方法基础之上,本申请提供一种计算任务的执行装置,应用于数据计算集群,数据计算集群包括资源调度服务器和与资源调度服务器连接的多个计算节点,计算任务的执行装置集成于计算节点,如图4所示,计算任务的执行装置400包括:
获取单元401,用于获取资源调度服务器分配的数据计算任务;
匹配单元402,用于当获取到基于数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与数据读取请求匹配的文件块,其中,内存以列存储的方式存储有多个文件块,文件块由文件拆分而来;
读取单元403,用于若自身内存中存储有与数据读取请求匹配的文件块,则读取与数据读取请求匹配的多个文件块;
执行单元404,用于基于读取的多个文件块执行数据计算任务,得到数据计算结果。
可选地,数据计算集群包括与多个计算节点网络连接的存储服务器,读取单元403,用于:
若自身内存中未存储有与数据读取请求匹配的文件块,则从存储服务器读取与数据读取请求匹配的多个文件块,其中,存储服务器以列存储的方式存储文件;
基于从存储服务器读取的多个文件块执行数据计算任务,得到数据计算结果;
将从存储服务器读取的多个文件块以列存储的方式存储于自身内存中。
可选地,执行单元404,用于:
按第一预设周期获取当前时间和自身内存中各个文件块的最近访问时间;
将最近访问时间与当前时间之差超过预设时长的文件块剔除,以更新自身内存中各个文件块。
进一步的,本申请提供一种计算任务的执行装置,应用于数据计算集群,数据计算集群包括资源调度服务器和与资源调度服务器连接的多个计算节点,计算任务的执行装置集成于资源调度服务器,计算任务的执行装置500包括:
第一获取单元501,用于获取多个数据计算任务;
分配单元502,用于将多个数据计算任务分配至各个计算节点;
第二获取单元503,用于获取各个计算节点执行分配到的数据计算任务返回的数据计算结果,其中,计算节点根据第一方面任意一项的计算任务的执行方法执行数据计算任务。
可选地,第二获取单元503,还用于:
按第二预设周期获取数据计算集群的集群等待分配资源指标,其中,集群等待分配资源指标用于表示集群中等待分配资源的大小;
当集群等待分配资源指标大于预设值时,增加数据计算集群中的计算节点;当集群等待分配资源指标不大于预设值时,减小数据计算集群中的计算节点。
可选地,分配单元502,还用于:
基于预设的哈希值空间构建哈希值圆环;
分别计算各个计算节点的节点哈希值和各个数据计算任务的任务哈希值;
将各个节点哈希值和各个任务哈希值映射在哈希值圆环上;
在哈希值圆环上将数据计算任务分配至与数据计算任务的任务哈希值最近的节点哈希值所对应的计算节点上。
本申请实施例还提供一种计算机设备,该计算机设备可以为计算节点或者资源调度服务器,其集成了本申请实施例所提供的任一种计算任务的执行装置,计算机设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中一个或多个应用程序被存储于存储器中,并配置为由处理器执行上述计算任务的执行方法实施例中任一实施例中的计算任务的执行方法的步骤。
如图6所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、电源603和输入单元604等部件。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器601是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器601可包括一个或多个处理核心;处理器601可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、实体界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。
计算机设备还包括给各个部件供电的电源603,优选的,电源603可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源603还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元604,该输入单元604可用于接收输入的数字或字符信息,以及产生与实体设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:
获取资源调度服务器分配的数据计算任务;当获取到基于数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与数据读取请求匹配的文件块,其中,内存以列存储的方式存储有多个文件块,文件块由文件拆分而来;若自身内存中存储有与数据读取请求匹配的文件块,则读取与数据读取请求匹配的多个文件块;基于读取的多个文件块执行数据计算任务,得到数据计算结果;
或者,
获取多个数据计算任务;
将多个数据计算任务分配至各个计算节点;
获取各个计算节点执行分配到的数据计算任务返回的数据计算结果。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种计算任务的执行方法中的步骤。例如,计算机程序被处理器进行加载可以执行如下步骤:
获取资源调度服务器分配的数据计算任务;当获取到基于数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与数据读取请求匹配的文件块,其中,内存以列存储的方式存储有多个文件块,文件块由文件拆分而来;若自身内存中存储有与数据读取请求匹配的文件块,则读取与数据读取请求匹配的多个文件块;基于读取的多个文件块执行数据计算任务,得到数据计算结果;
或者,
获取多个数据计算任务;
将多个数据计算任务分配至各个计算节点;
获取各个计算节点执行分配到的数据计算任务返回的数据计算结果。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种计算任务的执行方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种计算任务的执行方法,其特征在于,应用于数据计算集群,所述数据计算集群包括资源调度服务器和与所述资源调度服务器连接的多个计算节点,所述计算任务的执行方法的执行主体为所述计算节点,所述计算任务的执行方法包括:
获取所述资源调度服务器分配的数据计算任务;
当获取到基于所述数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与所述数据读取请求匹配的文件块,其中,所述内存以列存储的方式存储有多个文件块,所述文件块由文件拆分而来;
若所述自身内存中存储有与所述数据读取请求匹配的文件块,则读取与所述数据读取请求匹配的多个文件块;
基于读取的所述多个文件块执行所述数据计算任务,得到数据计算结果。
2.根据权利要求1所述的计算任务的执行方法,其特征在于,所述数据计算集群包括与所述多个计算节点网络连接的存储服务器,所述计算任务的执行方法包括:
若所述自身内存中未存储有与所述数据读取请求匹配的文件块,则从存储服务器读取与所述数据读取请求匹配的多个文件块,其中,所述存储服务器以列存储的方式存储文件;
基于从所述存储服务器读取的多个文件块执行所述数据计算任务,得到数据计算结果;
将从所述存储服务器读取的多个文件块以列存储的方式存储于自身内存中。
3.根据权利要求1所述的计算任务的执行方法,其特征在于,所述计算任务的执行方法包括:
按第一预设周期获取当前时间和自身内存中各个文件块的最近访问时间;
将最近访问时间与当前时间之差超过预设时长的文件块剔除,以更新自身内存中各个文件块。
4.一种计算任务的执行方法,其特征在于,应用于数据计算集群,所述数据计算集群包括资源调度服务器和与所述资源调度服务器连接的多个计算节点,所述计算任务的执行方法的执行主体为所述资源调度服务器,所述计算任务的执行方法包括:
获取多个数据计算任务;
将所述多个数据计算任务分配至各个计算节点;
获取各个计算节点执行分配到的数据计算任务返回的数据计算结果,其中,所述计算节点根据权利要求1-3任意一项所述的计算任务的执行方法执行所述数据计算任务。
5.根据权利要求4所述的计算任务的执行方法,其特征在于,所述计算任务的执行方法包括:
按第二预设周期获取数据计算集群的集群等待分配资源指标,其中,所述集群等待分配资源指标用于表示集群中等待分配资源的大小;
当集群等待分配资源指标大于预设值时,增加所述数据计算集群中的计算节点;当集群等待分配资源指标不大于预设值时,减小所述数据计算集群中的计算节点。
6.根据权利要求4所述的计算任务的执行方法,其特征在于,所述将所述多个数据计算任务分配至各个计算节点,包括:
基于预设的哈希值空间构建哈希值圆环;
分别计算各个计算节点的节点哈希值和各个数据计算任务的任务哈希值;
将各个节点哈希值和各个任务哈希值映射在所述哈希值圆环上;
在所述哈希值圆环上将数据计算任务分配至与数据计算任务的任务哈希值最近的节点哈希值所对应的计算节点上。
7.一种计算任务的执行装置,其特征在于,应用于数据计算集群,所述数据计算集群包括资源调度服务器和与所述资源调度服务器连接的多个计算节点,所述计算任务的执行装置集成于所述计算节点,所述计算任务的执行装置包括:
获取单元,用于获取所述资源调度服务器分配的数据计算任务;
匹配单元,用于当获取到基于所述数据计算任务生成的数据读取请求时,判断自身内存中是否存储有与所述数据读取请求匹配的文件块,其中,所述内存以列存储的方式存储有多个文件块,所述文件块由文件拆分而来;
读取单元,用于若所述自身内存中存储有与所述数据读取请求匹配的文件块,则读取与所述数据读取请求匹配的多个文件块;
执行单元,用于基于读取的所述多个文件块执行所述数据计算任务,得到数据计算结果。
8.一种计算任务的执行装置,其特征在于,应用于数据计算集群,所述数据计算集群包括资源调度服务器和与所述资源调度服务器连接的多个计算节点,所述计算任务的执行装置集成于所述资源调度服务器,所述计算任务的执行装置包括:
第一获取单元,用于获取多个数据计算任务;
分配单元,用于将所述多个数据计算任务分配至各个计算节点;
第二获取单元,用于获取各个计算节点执行分配到的数据计算任务返回的数据计算结果,其中,所述计算节点根据权利要求1-3任意一项所述的计算任务的执行方法执行所述数据计算任务。
9.一种数据计算集群,其特征在于,所述数据计算集群包括资源调度服务器和与所述资源调度服务器连接的多个计算节点,所述计算节点用于执行权利要求1至3中任一项所述的计算任务的执行方法,所述资源调度服务器用于执行权利要求4至6中任一项所述的计算任务的执行方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至3中任一项所述的计算任务的执行方法的步骤或者权利要求4至6中任一项所述的计算任务的执行方法的步骤。
CN202210682184.9A 2022-06-15 2022-06-15 计算任务的执行方法及装置 Pending CN117271073A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210682184.9A CN117271073A (zh) 2022-06-15 2022-06-15 计算任务的执行方法及装置
PCT/CN2023/112949 WO2023241740A1 (zh) 2022-06-15 2023-08-14 计算任务的执行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210682184.9A CN117271073A (zh) 2022-06-15 2022-06-15 计算任务的执行方法及装置

Publications (1)

Publication Number Publication Date
CN117271073A true CN117271073A (zh) 2023-12-22

Family

ID=89192364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210682184.9A Pending CN117271073A (zh) 2022-06-15 2022-06-15 计算任务的执行方法及装置

Country Status (2)

Country Link
CN (1) CN117271073A (zh)
WO (1) WO2023241740A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035881B (zh) * 2010-11-19 2013-01-16 清华大学 一种云端存储系统的数据缓存方法
US9442954B2 (en) * 2012-11-12 2016-09-13 Datawise Systems Method and apparatus for achieving optimal resource allocation dynamically in a distributed computing environment
CN110874271B (zh) * 2019-11-20 2022-03-11 山东省国土测绘院 一种海量建筑图斑特征快速计算方法及系统
CN112612734B (zh) * 2020-12-18 2023-09-26 平安科技(深圳)有限公司 文件传输方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
WO2023241740A1 (zh) 2023-12-21

Similar Documents

Publication Publication Date Title
WO2018149345A1 (zh) 一种数据处理方法及装置
US10356150B1 (en) Automated repartitioning of streaming data
CN110347651B (zh) 基于云存储的数据同步方法、装置、设备及存储介质
CN111966649B (zh) 一种高效去重的轻量级在线文件存储方法及装置
CN109299190B (zh) 分布式存储系统中处理对象的元数据的方法及装置
CN109408590B (zh) 分布式数据库的扩容方法、装置、设备及存储介质
US20170344546A1 (en) Code dispersion hash table-based map-reduce system and method
US9940020B2 (en) Memory management method, apparatus, and system
CN104102693A (zh) 对象处理方法和装置
CN110321225B (zh) 负载均衡方法、元数据服务器及计算机可读存储介质
CN112148693A (zh) 一种数据处理方法、装置及存储介质
CN111124309B (zh) 一种分片映射关系确定方法、装置、设备及存储介质
CN111427920B (zh) 数据采集方法、装置、系统、计算机设备及存储介质
CN101783814A (zh) 海量存储系统的元数据存储方法
CN117271073A (zh) 计算任务的执行方法及装置
WO2023029610A1 (zh) 数据访问方法、装置及存储介质
WO2019179252A1 (zh) 一种样本回放数据存取方法及装置
CN112732198B (zh) 文件管理方法、装置、设备和存储介质
CN114741029A (zh) 应用于去重存储系统的数据分配方法及相关设备
CN114817160A (zh) 文件解压方法、装置、电子设备及计算机可读存储介质
CN111767287A (zh) 数据导入方法、装置、设备及计算机存储介质
CN111475535A (zh) 数据存储、访问方法及装置
CN114328604B (zh) 一种提高集群数据采集能力的方法、装置及介质
US20240220334A1 (en) Data processing method in distributed system, and related system
CN117632470A (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