CN116185578A - 计算任务的调度方法和计算任务的执行方法 - Google Patents
计算任务的调度方法和计算任务的执行方法 Download PDFInfo
- Publication number
- CN116185578A CN116185578A CN202211599064.9A CN202211599064A CN116185578A CN 116185578 A CN116185578 A CN 116185578A CN 202211599064 A CN202211599064 A CN 202211599064A CN 116185578 A CN116185578 A CN 116185578A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- working
- local
- file system
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本公开提供了计算任务的调度方法和计算任务的执行方法,本公开涉及人工智能技术领域,尤其涉及云计算、大数据和分布式计算技术,可应用于智能云场景。具体实现方案为:在接收到任务请求的情况下,运行工作进程;在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系;其中,目标数据为执行任务请求所需的数据;根据映射关系,生成多个计算任务;将多个计算任务调度至多个工作节点。根据本公开技术,由于第一缓存框架是在主节点的工作进程中直接运行的,而非通过额外服务进程运行,因此可以使得分布式计算引擎更加轻量。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及云计算、大数据和分布式计算技术,可应用于智能云场景。
背景技术
随着大数据技术的发展,业界出现了越来越多的分布式计算引擎,这些引擎处理的数据绝大部分来自分布式存储系统中。分布式存储系统与分布式计算引擎通常不在同一服务器(如,典型的云计算场景)。在执行数据处理作业时,需要首先从分布式存储系统中按需将数据读取到引擎所在主机,才能进行后续处理。这一过程会大量消耗网络I/O(输入/输出,Input/Output)。为了降低网络I/O的消耗,引入了缓存技术。
发明内容
本公开提供了一种计算任务的调度方法和计算任务的执行方法。
根据本公开的一方面,提供了一种计算任务的调度方法,包括:
在接收到任务请求的情况下,运行工作进程;
在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系;其中,目标数据为执行任务请求所需的数据;
根据映射关系,生成多个计算任务;以及
将多个计算任务调度至多个工作节点。
根据本公开的另一方面,提供了一种计算任务的执行方法,包括:
在接收到分布式计算引擎的主节点调度的计算任务的情况下,运行工作线程;
在工作线程中,利用本地的第二缓存框架的第二缓存文件系统,查找计算任务对应的数据分片在本地缓存的存储位置;
在查找到存储位置的情况下,从存储位置获取与数据分片对应的缓存数据;以及
根据计算任务,对缓存数据进行计算。
根据本公开的另一方面,提供了一种计算任务的调度装置,包括:
进程模块,用于在接收到任务请求的情况下,运行工作进程;
第一确定模块,用于在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系;其中,目标数据为执行任务请求所需的数据;
生成模块,用于根据映射关系,生成多个计算任务;以及
调度模块,用于将多个计算任务调度至多个工作节点。
根据本公开的另一方面,提供了一种计算任务的执行装置,包括:
线程模块,用于在接收到分布式计算引擎的主节点调度的计算任务的情况下,运行工作线程;
查找模块,用于在工作线程中,利用本地的第二缓存框架的第二缓存文件系统,查找计算任务对应的数据分片在本地缓存的存储位置;
第一获取模块,用于在查找到存储位置的情况下,从存储位置获取与数据分片对应的缓存数据;
第一计算模块,用于根据计算任务,对缓存数据进行计算。
根据本公开的另一方面,提供了一种分布式计算引擎,包括:
主节点:在接收到任务请求的情况下,运行工作进程;在工作进程中,利用主节点本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系;其中,目标数据为执行任务请求所需的数据;根据映射关系,生成多个计算任务;将多个计算任务调度至多个工作节点;
多个工作节点中的每个工作节点:在接收到主节点调度的计算任务的情况下,运行工作线程;在工作线程中,利用每个工作节点本地的第二缓存框架的第二缓存文件系统,查找计算任务对应的数据分片在本地缓存的存储位置;在查找到存储位置的情况下,从存储位置获取与数据分片对应的缓存数据;根据计算任务,对缓存数据进行计算。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开实施例中任一的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开实施例中任一的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开实施例中任一的方法。
根据本公开技术,由于第一缓存框架是在主节点的工作进程中直接运行的,而非通过额外服务进程运行,因此可以使得分布式计算引擎更加轻量。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的计算任务的调度方法的示意图;
图2是根据本公开实施例的计算任务的执行方法的示意图;
图3是根据本公开实施例的分布式计算引擎的示意图;
图4是根据本公开实施例的计算任务的调度装置的示意图;
图5是根据本公开实施例的计算任务的执行方法的示意图;
图6是用来实现本公开实施例的计算任务的调度方法和/或计算任务的执行方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开实施例提供了一种计算任务的调度方法,应用于分布式计算引擎的主节点,如图1所示,包括:
步骤S101:在接收到任务请求的情况下,运行工作进程。
步骤S102:在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系。其中,目标数据为执行任务请求所需的数据。
步骤S103:根据映射关系,生成多个计算任务。
步骤S104:将多个计算任务调度至多个工作节点。
根据本公开实施例,需要说明的是:
分布式计算引擎包括至少一个主节点和多个工作节点,主节点用于调度多个工作节点执行计算任务。主节点将多个工作节点执行计算任务所得到的结果综合生成一个最终结果并反馈。
本公开实施例的计算任务的调度方法,可以应用于分布式计算引擎的任一个主节点上。
本公开实施例的步骤S103和步骤S104,可以在主节点的上述工作进程中执行,无需在主节点上启动额外的进程。
任务请求,可以理解为用户所在客户端发送的请求。
目标数据,可以理解为计算引擎执行任务请求所需用到的计算数据。例如,任务请求为“查询第一季度的A衣服销量情况”,则目标数据包括1月A衣服的销售量、2月A衣服的销售量和3月A衣服的销售量。
工作进程,可以理解为主节点调度多个工作节点进行计算的过程。
运行工作进程,可以理解为将工作进程由就绪状态切换为执行状态。也可以理解为,工作进程始终处于执行状态。例如,当工作进程为主节点的常驻进程时,该进程可以始终处于运行状态,当主节点接收到任务请求时,工作进程就会直接启动本地的第一缓存框架的第一缓存文件系统。
第一缓存框架是以库(计算机库)的形式写入主节点提供服务的,在主节点工作进程内实现,属于工作进程的一部分。第一缓存文件系统是属于第一缓存框架的,也即是说,第一缓存框架中包含有第一缓存文件系统。
确定多个数据分片与分布式计算引擎的多个工作节点的映射关系,可以理解为一个工作节点与一个数据分片构建映射关系,也可以理解为一个工作节点与多个数据分片构建映射关系。映射关系用于确定数据分片利用哪个工作节点进行获取。工作节点的本地缓存中若存在与具有映射关系的数据分片对应的缓存数据,则工作节点直接从本地缓存中获取数据分片的数据。工作节点的本地缓存中若不存在与具有映射关系的数据分片对应的缓存数据,则工作节点从远端获取。远端可以理解为存储有数据分片的元数据的终端。
将多个计算任务调度至多个工作节点,其中每个工作节点可能接收到一个计算任务,也可以接收到多个计算任务。针对每个计算任务,工作节点需要利用一个工作线程进行执行。
根据本公开技术,由于主节点本地的第一缓存框架是在主节点的工作进程中直接运行的,而非通过额外服务进程运行,因此在主节点运行时,第一缓存框架不会占用主节点额外的资源,可以使得分布式计算引擎更加轻量。这样也能够降低第一缓存框架的部署和维护成本。
现有技术中的分布式缓存系统,通常需要采用中心化架构,需要额外服务进程保障分布式缓存系统的可用性。例如,分布式缓存系统中独立的master(主)服务进程(生产环境需要部署多个master,并依赖zookeeper等分布式协调服务进行主节点选择)进行全局的元数据缓存管理。同时,分布式缓存系统涉及多个组件,一方面占用额外资源,另一方面增加了部署和运维成本。而本公开实施例的方法,将第一缓存框架以库的形式直接写入到分布式计算引擎的主节点的工作进程中,在工作进程中直接实现服务,不同于现有技术的分布式缓存系统需要设置在分布式计算引擎的各节点之外的节点上的方式,实现了去中心化架构的第一缓存框架,以及实现了无需额外组件保障第一缓存框架服务可用性,使得分布式计算引擎更加轻量。同时,现有技术中,分布式计算引擎的各节点与分布式缓存系统的各节点交互的这一过程会大量消耗网络I/O。而本公开实施例的第一缓存框架是在主节点的工作进程中直接运行的,无需消耗网络I/O。
在一种实施方式中,本公开实施例的计算任务的调度方法,包括步骤S101至步骤S104,其中,在步骤S102之前,还包括:
根据任务请求,确定执行任务请求所需的目标数据。
根据目标数据的元数据信息和预设分片规则,将目标数据预划分为多个数据分片。
根据本公开实施例,需要说明的是:
目标数据的元数据信息,可以包括:目标数据在远端的存储地址信息,目标数据的文件大小信息、目标数据的存储格式信息等。目标数据的元数据信息,主节点可以在数据源端获取到。例如,从数据源端获取到的目标数据的元数据信息包括:目标数据在远端的存储地址信息为s3://bucket1/file1、目标数据的文件大小信息为128MB、目标数据的存储格式信息为text file。
预设分片规则,可以理解为预先确定好的每个数据分片的文件大小。该预设分片规则可以根据不同数据的文件大小、数据类型、存储格式等信息进行调整。
多个数据分片的大小可以相同也可以不同,在此不做具体限定。根据预设分片规则进行确定。每个数据分片可以包含有该数据分片在远端的存储地址信息、文件偏移量(off set)信息、存储格式信息、缓存节点地址信息中的一个或多个信息。其中,根据数据分片在远端的存储地址信息,工作节点可以从远端获取到该数据分片的存储数据。根据文件偏移量信息,可以确定该数据分片在目标数据中的数据位置。根据缓存节点地址信息,可以确定与其存在映射关系的工作节点,或可以确定该数据分片的历史缓存记录(即,对应的缓存数据存储在哪个工作节点上)。
将目标数据预划分为多个数据分片,可以理解为是把目标数据的元数据信息进行了切分,每个数据分片包含被切分后的一部分目标数据的元数据信息。根据这部分目标数据的元数据信息,可以在具有映射关系的工作节点的本地缓存中查找对应的数据分片的缓存数据,或是工作节点利用这部分目标数据的元数据信息在远端获取对应数据分片的存储数据。
根据本公开技术,通过将目标数据划分为多个数据分片,可以实现利用多个工作节点并行对目标数据进行处理,提高分布式计算引擎基于任务请求的计算效率。
在一种实施方式中,本公开实施例的计算任务的调度方法,包括步骤S101至步骤S104,其中,步骤S102:在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系,包括:
步骤S1021:在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,获取分布式计算引擎对应的工作节点信息。
步骤S1022:根据工作节点信息,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系。
根据本公开实施例,需要说明的是:
工作节点信息,用于确定目前可用的工作节点。第一缓存文件系统可以从主节点的本地数据(例如缓存)中获取工作节点信息。每个工作节点执行完计算任务后处于空闲状态时,主节点可以及时记录处于空闲状态的工作节点的信息。
根据本公开技术,利用工作进程内的第一缓存文件系统,可以实现在无需占用额外进程资源的情况下获取到工作节点信息,使得第一缓存框架不会占用主节点额外的资源,降低了资源消耗,可以使得分布式计算引擎更加轻量。同时,基于工作节点信息,可以更加合理化的实现多个数据分片与分布式计算引擎的多个工作节点的映射关系的分配。
在一种实施方式中,本公开实施例的计算任务的调度方法,包括步骤S101至步骤S104,以及步骤S1021和步骤S1022,其中,步骤S1021:在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,获取分布式计算引擎对应的工作节点信息,包括:
在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,通过第一缓存框架的引擎插件,获取分布式计算引擎对应的工作节点信息。
根据本公开实施例,需要说明的是:
引擎插件是属于第一缓存框架的,也即是说,第一缓存框架中包含有引擎插件。第一缓存文件系统通过实现引擎插件SPI(服务提供方接口,Service Provider Interface)即可从主节点的本地数据(例如缓存)中获取到工作节点信息。
根据本公开技术,利用工作进程内的第一缓存文件系统,可以实现在无需占用额外进程资源的情况下获取到工作节点信息,使得第一缓存框架不会占用主节点额外的资源,降低了资源消耗,可以使得分布式计算引擎更加轻量。同时,基于工作节点信息,可以更加合理化的实现多个数据分片与分布式计算引擎的多个工作节点的映射关系的分配。
在一种实施方式中,本公开实施例的计算任务的调度方法,包括步骤S101至步骤S104,以及步骤S1021和步骤S1022,其中,步骤S1022:根据工作节点信息,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系,包括:
根据工作节点信息,确定分布式计算引擎的多个工作节点。
根据一致性哈希算法,确定目标数据的多个数据分片与多个工作节点的映射关系。
根据本公开技术,通过一致性哈希算法,可以合理实现多个数据分片与多个工作节点的映射关系分配。同时,在有工作节点异常时,通过一致性哈希算法可以通过最小的成本,快速调整多个数据分片与多个工作节点的映射关系分配,仅使一个或少量的工作节点的映射关系进行微调。有效提高了主节点的调度效率。
在一个示例中,在一种实施方式中,本公开实施例的计算任务的调度方法,包括步骤S101至步骤S104,以及步骤S1021和步骤S1022,其中,步骤S1022:根据工作节点信息,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系,包括:
根据工作节点信息,确定分布式计算引擎的多个工作节点。
根据预设算法,确定目标数据的多个数据分片与多个工作节点的映射关系。
根据本公开实施例,需要说明的是:
预设算法可以根据需要进行选择和调整,能够实现在集群节点(多个工作节点)未发生变化时,通过预设算法可以唯一确定数据分片与工作节点的映射关系,而无需在主节点记录数据分片与多个工作节点的映射关系。
在一种实施方式中,本公开实施例的计算任务的调度方法,包括步骤S101至步骤S104,其中,步骤S102:在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系,包括:
在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,从主节点本地缓存中获取工作节点缓存信息。
根据工作节点缓存信息中的分布式计算引擎的多个工作节点的缓存数据信息,确定目标数据的多个数据分片与多个工作节点的映射关系。
根据本公开实施例,需要说明的是:
工作节点缓存信息,记录有分布式计算引擎的多个工作节点的历史缓存数据信息,即记录有每个工作节点的本地缓存中存储有哪些缓存数据。根据工作节点缓存信息,可以确定出每个数据分片理论上在哪个工作节点的缓存中可以获取到相应数据。
根据本公开技术,根据工作节点缓存信息,可以快速且准确的确定出目标数据的多个数据分片与多个工作节点的映射关系。
在一个示例中,第一缓存框架由第一缓存文件系统和引擎插件构成。
在另一个示例中,第一缓存框架由第一缓存文件系统、引擎插件、远端存储客户端和缓存元数据服务构成。在主节点变为工作节点时,可以利用远端存储客户端通过引擎插件从远端获取存在映射关系的数据分片的存储数据。在主节点变为工作节点时,可以利用缓存元数据服务,查找存在映射关系的数据分片在本地缓存的存储位置。
本公开实施例的第一缓存框架整体架构简单,因此可以极大降低部署和运维成本。
在一个示例中,第一缓存框架的第一缓存文件系统,可以通过HDFS(分布式文件系统,Hadoop Distributed File System)标准接口,实现在主节点的工作进程中提供服务。由于目前几乎所有远端存储实现了HDFS文件系统标准接口(通过它分配到相应的工作节点上),可以通过HDFS client进行读取。并且,主流的分布式计算引擎,如,Hive/Spark/Presto/Tez/Flink等均支持数据本地化的调度策略。因此,主流的分布式计算引擎均可以使用本公开实施例的方法利用第一缓存框架进行数据本地化调度,提升缓存的命中率。
在一个示例中,第一缓存文件系统的功能包括:
通过引擎插件(plugin)获取分布式计算引擎的工作节点列表(工作节点信息)。
根据指定规则(如一致性哈希算法),进行数据分片到工作节点的映射关系分配。
获取数据分片对应的工作节点的地址信息,以使主节点根据工作节点的地址信息,将计算任务调度至相应的工作节点。
与缓存元数据服务交互,获取主节点本地的缓存信息。
创建、读取、删除主节点本地的数据缓存。
在一个示例中,引擎插件(使用第一缓存框架库提供的SPI实现),功能包括:
提供分布式计算引擎的多个节点的工作节点列表(工作节点信息)。
提供第一缓存文件系统利用远端存储客户端访问远端的功能。
在一个示例中,主节点执行计算任务的调度方法的过程,包括:
1、在接收到任务请求的情况下,主节点引擎运行工作进行,获取需要读取的目标数据对应的文件元数据信息,包括地址、文件大小、存储格式等。例如,s3://bucket1/file1、128MB、text file。
2、主节点引擎进行数据分片计算,根据file1的元数据信息,及设置的分片大小(假设32MB),将数据划分为多个数据分片:file1-1、file1-2、file1-3。
3、主节点引擎在工作进程内通过第一缓存文件系统,获取数据分片与多个工作节点的映射关系。如,file1-1(数据分片):node1(工作节点),file1-2:node2,file1-3:node3。
4、主节点引擎通过数据本地化的调度策略,将处理对应数据分片的计算任务,调度至对应工作节点。
本公开实施例提供了一种计算任务的执行方法,应用于分布式计算引擎的工作节点,如图2所示,包括:
步骤S201:在接收到分布式计算引擎的主节点调度的计算任务的情况下,运行工作线程。
步骤S202:在工作线程中,利用本地的第二缓存框架的第二缓存文件系统,查找计算任务对应的数据分片在本地缓存的存储位置。
步骤S203:在查找到存储位置的情况下,从存储位置获取与数据分片对应的缓存数据。
步骤S204:根据计算任务,对缓存数据进行计算。
根据本公开实施例,需要说明的是:
主节点可以为本公开实施例的计算任务的调度方法的执行主体。
计算任务,可以理解为执行计算任务的调度方法的主节点所发送的任务。
本公开实施例的计算任务的调度方法,可以应用于分布式计算引擎的任一个工作节点上。在多个工作节点接收到计算任务的情况下,每个工作节点均可以执行本公开实施例的计算任务的执行方法。
本公开实施例的步骤S203和步骤S204,可以在工作节点的上述工作线程中执行,无需在工作节点上启动额外的线程。
工作线程,可以理解为工作节点进行计算的过程。
运行工作线程,可以理解为将工作线程由就绪状态切换为执行状态。也可以理解为,工作线程始终处于执行状态。例如,当工作线程为工作节点的常驻线程时,该线程可以始终处于运行状态,当工作节点接收到任务请求时,工作线程就会直接启动本地的第二缓存框架的第二缓存文件系统。
第二缓存框架是以库(计算机库)的形式写入工作节点提供服务的,在工作节点工作线程内实现,属于工作线程的一部分。第二缓存文件系统是属于第二缓存框架的,也即是说,第二缓存框架中包含有第二缓存文件系统。
查找计算任务对应的数据分片在本地缓存的存储位置,可以理解为根据数据分片的信息,在工作节点的本地缓存中查找匹配的缓存数据的存储位置。
工作节点基于计算任务,对缓存数据进行计算后,可以将结果反馈至主节点或反馈至一个统一的接收计算结果的节点上。
根据本公开技术,由于工作节点本地的第二缓存框架是在工作节点的工作线程中直接运行的,而非通过额外服务进程运行,因此在工作节点运行时,第二缓存框架不会占用工作节点额外的资源,可以使得分布式计算引擎更加轻量。这样也能够降低第二缓存框架的部署和维护成本。
现有技术中的分布式缓存系统,通常需要采用中心化架构,需要额外服务进程保障分布式缓存系统的可用性。例如,分布式缓存系统中独立的master(主)服务进程(生产环境需要部署多个master,并依赖zookeeper等分布式协调服务进行主节点选择)进行全局的元数据缓存管理。同时,分布式缓存系统涉及多个组件,一方面占用额外资源,另一方面增加了部署和运维成本。而本公开实施例的方法,将第二缓存框架以库的形式直接写入到分布式计算引擎的工作节点的工作线程中,在工作线程中直接实现服务,不同于现有技术的分布式缓存系统需要设置在分布式计算引擎的各节点之外的节点上的方式,实现了去中心化架构的第二缓存框架,以及实现了无需额外组件保障第二缓存框架服务可用性,使得分布式计算引擎更加轻量。同时,现有技术中,分布式计算引擎的各节点与分布式缓存系统的各节点交互的这一过程会大量消耗网络I/O。而本公开实施例的第二缓存框架是在工作节点的工作线程中直接运行的,无需消耗网络I/O。
在一种实施方式中,本公开实施例的计算任务的执行方法,包括步骤S201至步骤S204,还包括:
步骤S205:在未查找到存储位置的情况下,根据数据分片的信息,确定数据分片的远端存储地址信息。
步骤S206:根据远端存储地址信息,利用第二缓存文件系统,从远端获取数据分片对应的存储数据。
步骤S207:根据计算任务,对存储数据进行计算。
根据本公开实施例,需要说明的是:
远端的存储地址信息,用于确定数据分片对应的数据在远端的存储位置。
远端,可以理解为存储有数据分片的对应数据的终端,例如云端或服务器。
根据本公开技术,利用工作线程内的第二缓存文件系统,可以实现在无需占用额外进程资源的情况下,从远端获取数据分片对应的存储数据,使得第二缓存框架不会占用工作节点额外的资源,降低了资源消耗,可以使得分布式计算引擎更加轻量。
在一种实施方式中,本公开实施例的计算任务的执行方法,包括步骤S201至步骤S204,以及步骤S205至步骤S207,其中,步骤S206:根据远端存储地址信息,利用第二缓存文件系统,从远端获取数据分片对应的存储数据,包括:
根据远端存储地址信息,利用第二缓存文件系统,通过第二缓存框架的引擎插件和远端存储客户端,从远端获取数据分片对应的存储数据。
根据本公开实施例,需要说明的是:
通过第二缓存框架的引擎插件和远端存储客户端,可以理解为第二缓存框架利用远端存储客户端,通过引擎插件SPI从远端获取存在映射关系的数据分片的存储数据。
引擎插件是属于第二缓存框架的,也即是说,第二缓存框架中包含有引擎插件。
根据本公开技术,利用工作线程内的第二缓存文件系统,可以实现在无需占用额外进程资源的情况下,从远端获取数据分片对应的存储数据,使得第二缓存框架不会占用工作节点额外的资源,降低了资源消耗,可以使得分布式计算引擎更加轻量。
在一种实施方式中,本公开实施例的计算任务的执行方法,包括步骤S201至步骤S204,以及步骤S205至步骤S207,还包括:
将存储数据存入工作节点的本地缓存。
根据本公开技术,工作节点可以将从远端获取的与数据分片对应的存储数据,存入到本地的缓存中。当在接受到同样的计算任务时,可以快速命中本地缓存,从本地缓存中直接获取到与计算任务中的数据分片对应的缓存数据,节省了从远端获取存储数据的资源消耗成本。
在一种实施方式中,本公开实施例的计算任务的执行方法,包括步骤S201至步骤S204,其中,步骤S202:在工作线程中,利用本地的第二缓存框架的第二缓存文件系统,查找计算任务对应的数据分片在本地缓存的存储位置,包括:
步骤S2021:在工作线程中,利用本地的第二缓存框架的第二缓存文件系统,确定数据分片的缓存地址信息。
步骤S2022:根据数据分片的缓存地址信息,查找计算任务对应的数据分片在本地缓存的存储位置。
根据本公开实施例,需要说明的是:
缓存地址信息,可以理解为主节点本地缓存中的工作节点缓存信息中所存储的该工作节点存储数据分片的信息。
根据本公开技术,利用工作线程内的第二缓存文件系统,可以实现在无需占用额外进程资源的情况下,在工作节点的本地缓存进行数据分片的查找,使得第二缓存框架不会占用工作节点额外的资源,降低了资源消耗,可以使得分布式计算引擎更加轻量。
在一种实施方式中,本公开实施例的计算任务的执行方法,包括步骤S201至步骤S204,其中,步骤S202:在工作线程中,利用本地的第二缓存框架的第二缓存文件系统,查找计算任务对应的数据分片在本地缓存的存储位置,包括:
在工作线程中,利用本地的第二缓存框架的第二缓存文件系统,通过第二缓存框架的缓存元数据服务,查找计算任务对应的数据分片在本地缓存的存储位置。
根据本公开实施例,需要说明的是:
缓存元数据服务是属于第二缓存框架的,也即是说,第二缓存框架中包含有缓存元数据服务。
缓存元数据服务的功能包括:维护工作节点的本地缓存。具体的,维护本地缓存中的缓存数据对应的缓存状态信息,以及提供本地缓存中的缓存数据的缓存状态信息。例如,缓存是否过期、刷新缓存。
根据本公开技术,利用工作线程内的第二缓存文件系统,可以实现在无需占用额外进程资源的情况下,通过第二缓存框架的缓存元数据服务,在工作节点的本地缓存进行数据分片的查找,使得第二缓存框架不会占用工作节点额外的资源,降低了资源消耗,可以使得分布式计算引擎更加轻量。
在一个示例中,缓存元数据服务在对工作节点的本地缓存数据进行维护时,可以以独立进程运行在工作节点上。
在一个示例中,第二缓存框架由第二缓存文件系统、引擎插件、远端存储客户端和缓存元数据服务构成。本公开实施例的第二缓存框架整体架构简单,因此可以极大降低部署和运维成本。
在一个示例中,第二缓存框架的第二缓存文件系统,可以通过HDFS(分布式文件系统,Hadoop Distributed File System)标准接口,实现在工作节点的工作线程中提供服务。由于目前几乎所有远端存储实现了HDFS文件系统标准接口(通过它分配到相应的工作节点上),可以通过HDFS client进行读取。并且,主流的分布式计算引擎,如,Hive/Spark/Presto/Tez/Flink等均支持数据本地化的调度策略。因此,主流的分布式计算引擎均可以使用本公开实施例的方法利用第二缓存框架进行数据本地化计算,提升缓存的命中率。
在一个示例中,第二缓存文件系统的功能包括:
通过引擎插件(plugin)和远端存储客户端,访问远端获取数据分片对应的存储数据。
与缓存元数据服务交互,获取工作节点本地的缓存信息。
创建、读取、删除工作节点本地的数据缓存。
在一个示例中,引擎插件(使用第二缓存框架库提供的SPI实现),功能包括:
提供第二缓存文件系统利用远端存储客户端访问远端的功能。
在一个示例中,缓存元数据服务的功能包括:
维护工作节点的本地缓存。具体的,维护本地缓存中的缓存数据对应的缓存状态信息,以及提供本地缓存中的缓存数据的缓存状态信息。例如,缓存是否过期、刷新缓存。
在一个示例中,工作节点的本地缓存的缓存数据,可以存储在工作节点的本地文件系统中。
在一个示例中,工作节点执行计算任务的执行方法的过程,包括:
1、计算任务的工作线程通过第二缓存文件系统访问缓存元数据服务,获取数据分片所在工作节点的本地文件系统的存储位置。例如,file1-1(数据分片)存储在node1(工作节点)上的/mnt/data/s3/bucket1/file1/file1-1。
2、若缓存不存在,则第二缓存文件系统通过远端存储客户端,读取对应数据并创建缓存。
3、若缓存存在,工作线程直接读取本地缓存进行计算。
本公开实施例提供了一种分布式计算引擎,如图3所示,包括:
主节点:在接收到任务请求的情况下,运行工作进程。在工作进程中,利用主节点本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系。其中,目标数据为执行任务请求所需的数据。根据映射关系,生成多个计算任务。将多个计算任务调度至多个工作节点。
多个工作节点中的每个工作节点:在接收到主节点调度的计算任务的情况下,运行工作线程。在工作线程中,利用每个工作节点本地的第二缓存框架的第二缓存文件系统,查找计算任务对应的数据分片在本地缓存的存储位置。在查找到存储位置的情况下,从存储位置获取与数据分片对应的缓存数据。根据计算任务,对缓存数据进行计算。
根据本公开实施例,需要说明的是:
主节点可以为本公开实施例的计算任务的调度方法的执行主体。
工作节点可以为本公开实施例的计算任务的执行方法的执行主体。
根据本公开技术,由于主节点本地的第一缓存框架是在主节点的工作进程中直接运行的,而非通过额外服务进程运行,因此在主节点运行时,第一缓存框架不会占用主节点额外的资源,可以使得分布式计算引擎更加轻量。这样也能够降低第一缓存框架的部署和维护成本。以及,由于工作节点本地的第二缓存框架是在工作节点的工作线程中直接运行的,而非通过额外服务进程运行,因此在工作节点运行时,第二缓存框架不会占用工作节点额外的资源,可以使得分布式计算引擎更加轻量。这样也能够降低第二缓存框架的部署和维护成本。
现有技术中的分布式缓存系统,通常需要采用中心化架构,需要额外服务进程保障分布式缓存系统的可用性。例如,分布式缓存系统中独立的master(主)服务进程(生产环境需要部署多个master,并依赖zookeeper等分布式协调服务进行主节点选择)进行全局的元数据缓存管理。同时,分布式缓存系统涉及多个组件,一方面占用额外资源,另一方面增加了部署和运维成本。而本公开实施例的方法,将第一缓存框架以库的形式直接写入到分布式计算引擎的主节点的工作进程中、将第二缓存框架以库的形式直接写入到分布式计算引擎的工作节点的工作线程中,在工作进程和工作线程中直接实现服务,不同于现有技术的分布式缓存系统需要设置在分布式计算引擎的各节点之外的节点上的方式,实现了去中心化架构的第一缓存框架和第二缓存框架,以及实现了无需额外组件保障第一缓存框架和第二缓存框架服务可用性,使得分布式计算引擎更加轻量。同时,现有技术中,分布式计算引擎的各节点与分布式缓存系统的各节点交互的这一过程会大量消耗网络I/O。而本公开实施例的第一缓存框架是在主节点的工作进程中直接运行的、第二缓存框架是在工作节点的工作线程中直接运行的,无需消耗网络I/O。
在一个示例中,如图3所示,分布式计算引擎的工作过程,包括:
①、在接收到任务请求的情况下,主节点引擎运行工作进行,获取需要读取的目标数据对应的文件元数据信息,包括地址、文件大小、存储格式等。例如,s3://bucket1/file1、128MB、text file。
②、主节点引擎进行数据分片计算,根据file1的元数据信息,及设置的分片大小(假设32MB),将数据划分为多个数据分片:file1-1、file1-2、file1-3。
③、主节点引擎在工作进程内通过第一缓存文件系统,获取数据分片与多个工作节点的映射关系。如,file1-1(数据分片):node1(工作节点),file1-2:node2,file1-3:node3。
④、主节点引擎通过数据本地化的调度策略,将处理对应数据分片的计算任务,调度至对应工作节点。
⑤、计算任务的工作线程通过第二缓存文件系统访问缓存元数据服务,获取数据分片所在工作节点的本地文件系统的存储位置。例如,file1-1(数据分片)存储在node1(工作节点)上的/mnt/data/s3/bucket1/file1/file1-1。
⑥、若缓存不存在,则第二缓存文件系统通过远端存储客户端,读取对应数据并创建缓存。
⑦、若缓存存在,工作线程直接读取本地缓存进行计算。
本公开实施例提供了一种计算任务的调度装置,应用于分布式计算引擎的主节点,如图4所示,包括:
进程模块410,用于在接收到任务请求的情况下,运行工作进程。
第一确定模块420,用于在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系。其中,目标数据为执行任务请求所需的数据。
生成模块430,用于根据映射关系,生成多个计算任务。以及
调度模块440,用于将多个计算任务调度至多个工作节点。
在一种实施方式中,计算任务的调度装置,还包括:
第二确定模块,用于根据任务请求,确定执行任务请求所需的目标数据。
分片模块,用于根据目标数据的元数据信息和预设分片规则,将目标数据预划分为多个数据分片。
在一种实施方式中,第一确定模块420包括:
第一获取子模块,用于在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,获取分布式计算引擎对应的工作节点信息。
第一确定子模块,用于根据工作节点信息,确定目标数据的多个数据分片与分布式计算引擎的多个工作节点的映射关系。
在一种实施方式中,第一获取子模块用于:
在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,通过第一缓存框架的引擎插件,获取分布式计算引擎对应的工作节点信息。
在一种实施方式中,第一确定子模块用于:
根据工作节点信息,确定分布式计算引擎的多个工作节点。
根据一致性哈希算法,确定目标数据的多个数据分片与多个工作节点的映射关系。
在一种实施方式中,第一确定模块包括:
第二获取子模块,用于在工作进程中,利用本地的第一缓存框架的第一缓存文件系统,从本地缓存中获取工作节点缓存信息。
第二确定子模块,用于根据工作节点缓存信息中的分布式计算引擎的多个工作节点的缓存数据信息,确定目标数据的多个数据分片与多个工作节点的映射关系。
本公开实施例提供了计算任务的执行装置,应用于分布式计算引擎的工作节点,如图5所示,包括:
线程模块510,用于在接收到分布式计算引擎的主节点调度的计算任务的情况下,运行工作线程。
查找模块520,用于在工作线程中,利用本地的第二缓存框架的第二缓存文件系统,查找计算任务对应的数据分片在本地缓存的存储位置。
第一获取模块530,用于在查找到存储位置的情况下,从存储位置获取与数据分片对应的缓存数据。
第一计算模块540,用于根据计算任务,对缓存数据进行计算。
在一种实施方式中,计算任务的执行装置,还包括:
第三确定模块,用于在未查找到存储位置的情况下,根据数据分片的信息,确定数据分片的远端存储地址信息。
第二获取模块,用于根据远端存储地址信息,利用第二缓存文件系统,从远端获取数据分片对应的存储数据。
第二计算模块,用于根据计算任务,对存储数据进行计算。
在一种实施方式中,第二获取模块用于:
根据远端存储地址信息,利用第二缓存文件系统,通过第二缓存框架的引擎插件和远端存储客户端,从远端获取数据分片对应的存储数据。
在一种实施方式中,还包括:
存储模块,用于将存储数据存入本地缓存。
在一种实施方式中,查找模块520包括:
第三确定子模块,用于在工作线程中,利用本地的第二缓存框架的第二缓存文件系统,确定数据分片的缓存地址信息。
第一查找子模块,用于根据数据分片的缓存地址信息,查找计算任务对应的数据分片在本地缓存的存储位置。
在一种实施方式中,查找模块包括:
第二查找子模块,用于在工作线程中,利用本地的第二缓存框架的第二缓存文件系统,通过第二缓存框架的缓存元数据服务,查找计算任务对应的数据分片在本地缓存的存储位置。
本公开实施例的装置的各模块、子模块的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如计算任务的调度方法和计算任务的执行方法。例如,在一些实施例中,计算任务的调度方法和计算任务的执行方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的计算任务的调度方法和计算任务的执行方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行计算任务的调度方法和计算任务的执行方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (28)
1.一种计算任务的调度方法,应用于分布式计算引擎的主节点,包括:
在接收到任务请求的情况下,运行工作进程;
在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与所述分布式计算引擎的多个工作节点的映射关系;其中,所述目标数据为执行所述任务请求所需的数据;
根据所述映射关系,生成多个计算任务;以及
将所述多个计算任务调度至所述多个工作节点。
2.根据权利要求1所述的方法,其中,所述在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与所述分布式计算引擎的多个工作节点的映射关系,之前,还包括:
根据所述任务请求,确定执行所述任务请求所需的目标数据;
根据所述目标数据的元数据信息和预设分片规则,将所述目标数据预划分为多个数据分片。
3.根据权利要求1或2所述的方法,其中,所述在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与所述分布式计算引擎的多个工作节点的映射关系,包括:
在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,获取所述分布式计算引擎对应的工作节点信息;
根据所述工作节点信息,确定目标数据的多个数据分片与所述分布式计算引擎的多个工作节点的映射关系。
4.根据权利要求3所述的方法,其中,所述在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,获取所述分布式计算引擎对应的工作节点信息,包括:
在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,通过所述第一缓存框架的引擎插件,获取所述分布式计算引擎对应的工作节点信息。
5.根据权利要求3所述的方法,其中,所述根据所述工作节点信息,确定目标数据的多个数据分片与所述分布式计算引擎的多个工作节点的映射关系,包括:
根据所述工作节点信息,确定所述分布式计算引擎的多个工作节点;
根据一致性哈希算法,确定目标数据的多个数据分片与所述多个工作节点的映射关系。
6.根据权利要求1或2所述的方法,其中,所述在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与所述分布式计算引擎的多个工作节点的映射关系,包括:
在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,从本地缓存中获取工作节点缓存信息;
根据所述工作节点缓存信息中的所述分布式计算引擎的多个工作节点的缓存数据信息,确定目标数据的多个数据分片与所述多个工作节点的映射关系。
7.一种计算任务的执行方法,应用于分布式计算引擎的工作节点,包括:
在接收到所述分布式计算引擎的主节点调度的计算任务的情况下,运行工作线程;
在所述工作线程中,利用本地的第二缓存框架的第二缓存文件系统,查找所述计算任务对应的数据分片在本地缓存的存储位置;
在查找到所述存储位置的情况下,从所述存储位置获取与所述数据分片对应的缓存数据;以及
根据所述计算任务,对所述缓存数据进行计算。
8.根据权利要求7所述的方法,还包括:
在未查找到所述存储位置的情况下,根据所述数据分片的信息,确定所述数据分片的远端存储地址信息;
根据所述远端存储地址信息,利用所述第二缓存文件系统,从远端获取所述数据分片对应的存储数据;
根据所述计算任务,对所述存储数据进行计算。
9.根据权利要求8所述的方法,其中,所述根据所述远端存储地址信息,利用所述第二缓存文件系统,从远端获取所述数据分片对应的存储数据,包括:
根据所述远端存储地址信息,利用所述第二缓存文件系统,通过所述第二缓存框架的引擎插件和远端存储客户端,从远端获取所述数据分片对应的存储数据。
10.根据权利要求8所述的方法,还包括:
将所述存储数据存入所述本地缓存。
11.根据权利要求7至10任一项所述的方法,其中,所述在所述工作线程中,利用本地的第二缓存框架的第二缓存文件系统,查找所述计算任务对应的数据分片在本地缓存的存储位置,包括:
在所述工作线程中,利用本地的第二缓存框架的第二缓存文件系统,确定所述数据分片的缓存地址信息;
根据所述数据分片的缓存地址信息,查找所述计算任务对应的数据分片在本地缓存的存储位置。
12.根据权利要求7至10任一项所述的方法,其中,所述在所述工作线程中,利用本地的第二缓存框架的第二缓存文件系统,查找所述计算任务对应的数据分片在本地缓存的存储位置,包括:
在所述工作线程中,利用本地的第二缓存框架的第二缓存文件系统,通过所述第二缓存框架的缓存元数据服务,查找所述计算任务对应的数据分片在本地缓存的存储位置。
13.一种计算任务的调度装置,应用于分布式计算引擎的主节点,包括:
进程模块,用于在接收到任务请求的情况下,运行工作进程;
第一确定模块,用于在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与所述分布式计算引擎的多个工作节点的映射关系;其中,所述目标数据为执行所述任务请求所需的数据;
生成模块,用于根据所述映射关系,生成多个计算任务;以及
调度模块,用于将所述多个计算任务调度至所述多个工作节点。
14.根据权利要求13所述的装置,还包括:
第二确定模块,用于根据所述任务请求,确定执行所述任务请求所需的目标数据;
分片模块,用于根据所述目标数据的元数据信息和预设分片规则,将所述目标数据预划分为多个数据分片。
15.根据权利要求13或14所述的装置,其中,所述第一确定模块包括:
第一获取子模块,用于在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,获取所述分布式计算引擎对应的工作节点信息;
第一确定子模块,用于根据所述工作节点信息,确定目标数据的多个数据分片与所述分布式计算引擎的多个工作节点的映射关系。
16.根据权利要求15所述的装置,其中,所述第一获取子模块用于:
在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,通过所述第一缓存框架的引擎插件,获取所述分布式计算引擎对应的工作节点信息。
17.根据权利要求15所述的装置,其中,所述第一确定子模块用于:
根据所述工作节点信息,确定所述分布式计算引擎的多个工作节点;
根据一致性哈希算法,确定目标数据的多个数据分片与所述多个工作节点的映射关系。
18.根据权利要求13或14所述的装置,其中,所述第一确定模块包括:
第二获取子模块,用于在所述工作进程中,利用本地的第一缓存框架的第一缓存文件系统,从本地缓存中获取工作节点缓存信息;
第二确定子模块,用于根据所述工作节点缓存信息中的所述分布式计算引擎的多个工作节点的缓存数据信息,确定目标数据的多个数据分片与所述多个工作节点的映射关系。
19.一种计算任务的执行装置,应用于分布式计算引擎的工作节点,包括:
线程模块,用于在接收到所述分布式计算引擎的主节点调度的计算任务的情况下,运行工作线程;
查找模块,用于在所述工作线程中,利用本地的第二缓存框架的第二缓存文件系统,查找所述计算任务对应的数据分片在本地缓存的存储位置;
第一获取模块,用于在查找到所述存储位置的情况下,从所述存储位置获取与所述数据分片对应的缓存数据;
第一计算模块,用于根据所述计算任务,对所述缓存数据进行计算。
20.根据权利要求19所述的装置,还包括:
第三确定模块,用于在未查找到所述存储位置的情况下,根据所述数据分片的信息,确定所述数据分片的远端存储地址信息;
第二获取模块,用于根据所述远端存储地址信息,利用所述第二缓存文件系统,从远端获取所述数据分片对应的存储数据;
第二计算模块,用于根据所述计算任务,对所述存储数据进行计算。
21.根据权利要求20所述的装置,其中,所述第二获取模块用于:
根据所述远端存储地址信息,利用所述第二缓存文件系统,通过所述第二缓存框架的引擎插件和远端存储客户端,从远端获取所述数据分片对应的存储数据。
22.根据权利要求20所述的装置,还包括:
存储模块,用于将所述存储数据存入所述本地缓存。
23.根据权利要求19至22任一项所述的装置,其中,所述查找模块包括:
第三确定子模块,用于在所述工作线程中,利用本地的第二缓存框架的第二缓存文件系统,确定所述数据分片的缓存地址信息;
第一查找子模块,用于根据所述数据分片的缓存地址信息,查找所述计算任务对应的数据分片在本地缓存的存储位置。
24.根据权利要求23所述的装置,其中,所述查找模块包括:
第二查找子模块,用于在所述工作线程中,利用本地的第二缓存框架的第二缓存文件系统,通过所述第二缓存框架的缓存元数据服务,查找所述计算任务对应的数据分片在本地缓存的存储位置。
25.一种分布式计算引擎,包括:
主节点:在接收到任务请求的情况下,运行工作进程;在所述工作进程中,利用所述主节点本地的第一缓存框架的第一缓存文件系统,确定目标数据的多个数据分片与所述分布式计算引擎的多个工作节点的映射关系;其中,所述目标数据为执行所述任务请求所需的数据;根据所述映射关系,生成多个计算任务;将所述多个计算任务调度至所述多个工作节点;
所述多个工作节点中的每个工作节点:在接收到所述主节点调度的计算任务的情况下,运行工作线程;在所述工作线程中,利用所述每个工作节点本地的第二缓存框架的第二缓存文件系统,查找所述计算任务对应的数据分片在本地缓存的存储位置;在查找到所述存储位置的情况下,从所述存储位置获取与所述数据分片对应的缓存数据;根据所述计算任务,对所述缓存数据进行计算。
26.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至12中任一项所述的方法。
27.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至12中任一项所述的方法。
28.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211599064.9A CN116185578A (zh) | 2022-12-14 | 2022-12-14 | 计算任务的调度方法和计算任务的执行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211599064.9A CN116185578A (zh) | 2022-12-14 | 2022-12-14 | 计算任务的调度方法和计算任务的执行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185578A true CN116185578A (zh) | 2023-05-30 |
Family
ID=86445129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211599064.9A Pending CN116185578A (zh) | 2022-12-14 | 2022-12-14 | 计算任务的调度方法和计算任务的执行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185578A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450657A (zh) * | 2023-06-19 | 2023-07-18 | 北京好心情互联网医院有限公司 | 数据分片调度方法、装置、设备及存储介质 |
-
2022
- 2022-12-14 CN CN202211599064.9A patent/CN116185578A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450657A (zh) * | 2023-06-19 | 2023-07-18 | 北京好心情互联网医院有限公司 | 数据分片调度方法、装置、设备及存储介质 |
CN116450657B (zh) * | 2023-06-19 | 2023-08-29 | 北京好心情互联网医院有限公司 | 数据分片调度方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160253220A1 (en) | Data center operation | |
CN109614227B (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
JP2012118987A (ja) | メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) | |
US10838798B2 (en) | Processing system for performing predictive error resolution and dynamic system configuration control | |
CN109446225B (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
CN115373835A (zh) | Flink集群的任务资源调整方法、装置及电子设备 | |
US20220374742A1 (en) | Method, device and storage medium for running inference service platform | |
CN114911598A (zh) | 任务调度方法、装置、设备以及存储介质 | |
CN112422450A (zh) | 计算机设备、服务请求的流量控制方法及装置 | |
CN116185578A (zh) | 计算任务的调度方法和计算任务的执行方法 | |
CN112671892B (zh) | 数据传输方法、装置、电子设备及介质 | |
CN113282589A (zh) | 一种数据获取方法和装置 | |
CN113760638A (zh) | 一种基于kubernetes集群的日志服务方法和装置 | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN112099937A (zh) | 一种资源治理方法和装置 | |
CN114610719B (zh) | 跨集群数据处理方法、装置、电子设备以及存储介质 | |
CN112398669A (zh) | 一种Hadoop部署方法和装置 | |
CN113568706B (zh) | 针对业务的容器调整方法、装置、电子设备和存储介质 | |
CN113779412B (zh) | 一种基于区块链网络的消息触达方法、节点和系统 | |
CN113986833A (zh) | 文件合并方法、系统、计算机系统及存储介质 | |
CN114612212A (zh) | 一种基于风险控制的业务处理方法、装置和系统 | |
CN113779122A (zh) | 导出数据的方法和装置 | |
CN114168341A (zh) | 数据处理方法、装置、设备、介质和程序产品 | |
CN114329161A (zh) | 数据查询方法、装置及电子设备 | |
CN112948461A (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 |