CN113225388B - 一种分布式调度方法及装置、设备、存储介质 - Google Patents
一种分布式调度方法及装置、设备、存储介质 Download PDFInfo
- Publication number
- CN113225388B CN113225388B CN202110438316.9A CN202110438316A CN113225388B CN 113225388 B CN113225388 B CN 113225388B CN 202110438316 A CN202110438316 A CN 202110438316A CN 113225388 B CN113225388 B CN 113225388B
- Authority
- CN
- China
- Prior art keywords
- application program
- running
- python
- distributed
- application
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- 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
技术领域
本申请实施例涉及但不限于集群资源调度技术,尤其涉及一种分布式调度方法及装置、设备、存储介质。
背景技术
相关技术中,在分布式环境上运行应用程序的场景下,需要首先通过自定义程序将应用程序调度到有资源空闲的节点上,然后在该节点上运行应用程序。然而,由于分布式集群中存在多个节点,且不同节点上的运行环境存在版本差异和依赖差异,因此,当应用程序被调度到不同节点运行时,由于不同节点运行环境的差异,容易导致应用程序出现运行问题。
发明内容
有鉴于此,本申请实施例为解决相关技术中存在的至少一个问题而提供一种分布式调度方法及装置、设备、存储介质。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种分布式调度方法,所述方法包括:
获取应用程序和所述应用程序运行需要的运行环境;
确定所述应用程序的配置参数;
根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点;
将所述应用程序和所述运行环境发送到所述目标节点,以通过所述目标节点在所述运行环境中运行所述应用程序。
在一些实施例中,所述应用程序为Python应用程序,所述运行环境为Python的虚拟环境;所方法还包括:根据所述配置参数,生成配置文件;根据所述配置文件,启动Skein模块;调用所述Skein模块缓存所述Python应用程序和运行所述Python应用程序的虚拟环境。
在一些实施例中,所述调用所述Skein模块缓存所述Python应用程序和运行所述Python应用程序的虚拟环境,包括:调用所述Skein模块将所述Python应用程序和运行所述Python应用程序的虚拟环境缓存在分布式文件系统;对应地,所述将所述应用程序和所述运行环境发送到所述目标节点,包括:调用所述Skein模块读取所述分布式文件系统中的所述Python应用程序和运行所述Python应用程序的虚拟环境;调用所述Skein模块将所述Python应用程序和所述虚拟环境发送到所述目标节点;调用所述分布式文件系统清除缓存的所述Python应用程序和所述虚拟环境。
这样,可以通过Skein与分布式文件系统的结合使用,将应用程序和运行所述应用程序的运行环境缓存在分布式文件系统中,在确定应用程序被调度到的目标节点之后,可以从分布式文件系统读取缓存的应用程序和运行应用程序的虚拟环境,并将读取的应用程序和虚拟环境发送到目标节点,从而可以提升向目标节点发送应用程序和虚拟环境的效率,从而可以提升应用程序的运行效率。
在一些实施例中,所述根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点,包括:调用分布式集群的资源管理器确定分布式集群中满足所述配置参数的资源空闲节点;调用分布式集群的资源管理器根据所述资源空闲节点,确定用于运行所述Python应用程序的目标节点。
这样,可以通过Skein与分布式集群的资源管理器的结合使用,使得应用程序的调度能够通过分布式集群的资源管理器平台进行管理,并且,能够与其他通过分布式集群的资源管理器平台进行管理的工作流统一管理,从而提高了应用程序进行分布式调度的易用性。
在一些实施例中,所述配置参数中至少包括:运行所述Python应用程序所需的内存数量和处理器核心数量,所述调用分布式集群的资源管理器确定分布式集群中满足所述配置参数的资源空闲节点,包括:调用分布式集群的资源管理器确定分布式集群中满足所述配置参数中内存数量、处理器核心数量的资源空闲节点;对应地,所述调用分布式集群的资源管理器根据所述资源空闲节点,确定用于运行所述Python应用程序的目标节点,包括:调用分布式集群的资源管理器将所述资源空闲节点按照所述内存数量、处理器核心数量进行排序;调用分布式集群的资源管理器将排序第一的资源空闲节点确定为用于运行所述Python应用程序的目标节点。
在一些实施例中,所述获取应用程序和所述应用程序运行需要的运行环境,包括:检测可视化界面中导入的所述应用程序;根据所述应用程序的编写语言获取所述应用程序运行需要的运行环境;所述确定所述应用程序的配置参数,包括:检测在所述可视化界面中输入的所述应用程序的配置参数。
这样,通过可视化界面能够实现应用程序的可视化导入、参数的可视化配置,从而实现界面化管理。
在一些实施例中,在所述将所述应用程序和所述运行环境发送到所述目标节点之后,所述方法还包括:调用分布式集群的资源管理器监控所述目标节点的运行状态;在所述运行状态异常的情况下,将异常运行状态对应的告警信息发送给可视化界面。
这样,可以提高在分布式环境上运行Python应用程序的易用性。
第二方面,本申请实施例提供一种分布式调度装置,所述装置包括:
第一获取模块,用于获取应用程序和所述应用程序运行需要的运行环境;
第二获取模块,用于确定所述应用程序的配置参数;
确定模块,用于根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点;其中,所述分布式集群包括多个节点;
第一发送模块,用于将所述应用程序和所述运行环境发送到所述目标节点,以通过所述目标节点在所述运行环境中运行所述应用程序。
第三方面,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述提供的智能服务共享的方法。
在本申请实施例中,获取应用程序和所述应用程序运行需要的运行环境;确定所述应用程序的配置参数;根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点;其中,所述分布式集群包括多个节点;将所述应用程序和所述运行环境发送到所述目标节点,以通过所述目标节点在所述运行环境中运行所述应用程序。这样,在应用程序被调度到目标节点的情况下,通过将应用程序与应用程序运行需要的运行环境发送到目标节点,并通过目标节点在该运行环境中运行该应用程序,可以保证同一应用程序被调度到分布式集群中的任意节点的情况下运行环境的统一,避免了分布式集群中不同节点上的虚拟环境存在版本差异和依赖差异导致的运行问题。
附图说明
图1为本申请实施例提供的一种分布式调度方法的实现流程示意图;
图2为本申请实施例提供的一种分布式调度方法的实现流程示意图;
图3为本申请实施例提供的一种分布式调度方法的实现流程示意图;
图4A为本申请实施例提供的一种分布式调度方法的实现框架程示意图;
图4B为本申请实施例提供的一种分布式调度装置的组成结构示意图;
图5为本申请实施例提供的一种分布式调度方法的实现流程示意图;
图6为本申请实施例提供的一种分布式调度装置的组成结构示意图;
图7为本申请实施例提供的一种计算机设备的一种硬件实体示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
下面结合附图和实施例对本申请的技术方案进一步详细阐述。
本申请实施例提供一种分布式调度方法,图1为本申请实施例分布式调度方法的实现流程示意图,如图1所示,该方法包括:
步骤S110,获取应用程序和所述应用程序运行需要的运行环境;
这里,应用程序可以是可直接运行的可执行文件,也可以是经过编译或解释处理后可运行的程序包数据、软件代码等。应用程序可以是单机运行的程序,也可以是需要联网运行的程序。应用程序可以用于提供分布式服务,也可以用于执行数据处理任务等,这里并不限定。在实施时,应用程序可以基于任意合适的编程语言编写的程序。例如,可以为基于Python语言编写的应用程序或其他语言例如C++等编写的应用程序。
所述运行环境可以为能够运行所述应用程序的环境,例如,所述运行环境可以为能够运行Python应用程序的Python虚拟环境、能够运行Java应用程序的Java虚拟机等。在实施的过程中,运行环境可以是一个标准的统一的通用的环境,这样至少能够适用于大多数的应用程序,只要不是极其特殊的应用程序,都能够在此运行环境下运行。
步骤S120,确定所述应用程序的配置参数;
这里,所述应用程序的配置参数可以包括两类,一类可以是运行该应用程序时所需要的资源,比如使用的数据库、表名等,另一类可以是运行该应用程序时的资源使用量(例如内存、核数等)。在实施时,所述应用程序的配置参数可以为分布式发布订阅消息系统(Kafka)的地址、运行所述应用程序所需的内存数量,处理器核心数量等。例如,应用程序的配置参数可以为kafka地址、题目(topic)和运行所述应用程序所需的内存数量,处理器核心数量等资源使用量。
步骤S130,根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点;其中,所述分布式集群包括多个节点;
这里,所分布式集群中包括至少多个节点。所述节点为连接在分布式网络中的服务器或者终端。
这里,所述目标节点为分布式集群中用于运行应用程序的节点,可以是满足配置参数所需条件的节点。通过在分布式集群中进行节点调度,可以从分布式集群的多个节点中确定能够用于运行应用程序的节点。
举例说明,配置参数为:kafka地址=A,topic=B;双核;内存大于8GB。根据所述配置参数,可以找到具有连接kafka地址=A,topic=B权限、处理器核心数量为2且内存大于8GB的资源空闲节点;从满足以上条件的节点中选取一个作为运行所述应用程序的目标节点。
步骤S140,将所述应用程序和所述运行环境发送到所述目标节点,以通过所述目标节点在所述运行环境中运行所述应用程序。
举例说明,以Python应用程序、Python应用程序的虚拟环境为例,将Python应用程序和Python应用程序的虚拟环境发送到已确定的目标节点上运行。
在一些实施例中,所述步骤S110,获取应用程序和所述应用程序运行需要的运行环境,包括:
步骤S111,检测可视化界面中导入的所述应用程序;
这里,所述可视化界面可以为前端界面,所述前端界面中可以包括:导入功能,用于导入应用程序。
步骤S112,根据所述应用程序的编写语言获取所述应用程序运行需要的运行环境。
这里,可以根据应用程序的编写语言,确定应用程序运行需要的运行环境。
举例说明,在所述应用程序为基于Python编程语言编写的应用程序的情况下,获取运行Python的虚拟环境,以在Python虚拟环境中运行基于Python编程语言编写的应用程序。
对应地,所述步骤S120,确定所述应用程序的配置参数,包括:
步骤S121,检测在所述可视化界面中输入的所述应用程序的配置参数;
这里,所述可视化界面还可以用于配置应用程序的消息系统地址、运行模型所需的内存数量,处理器核心数量等参数。
在一些实施例中,所述步骤S130,根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点,包括:
步骤S131,调用分布式集群的资源管理器确定分布式集群中满足所述配置参数的资源空闲节点;
这里,所述分布式集群的资源管理器可以为通用资源管理器(Yet AnotherResource Negotiator,Yarn)。通过Yarn可以识别分布式集群中有资源空闲的节点。
步骤S132,调用分布式集群的资源管理器根据所述资源空闲节点,确定用于运行所述应用程序的目标节点。
在实施过程中,确认目标节点后会将应用程序和应用程序运行需要的运行环境发送到该目标节点,并在该运行环境中执行应用程序,这样,能够屏蔽掉不同节点上的运行环境差异,做到统一运行环境。
在一些实施例中,所述配置参数中至少包括:运行所述应用程序所需的内存数量和处理器核心数量,所述步骤S131,调用分布式集群的资源管理器确定分布式集群中满足所述配置参数的资源空闲节点,包括:
步骤S1311,调用分布式集群的资源管理器确定分布式集群中满足所述配置参数中内存数量、处理器核心数量的资源空闲节点;
举例说明,通过Yarn可以识别分布式集群中有资源空闲的节点,统计资源空闲点中满足配置参数中内存数量和处理器核心数量要求的资源空闲节点。
对应地,所述步骤S132,调用分布式集群的资源管理器根据所述资源空闲节点,确定用于运行所述应用程序的目标节点,包括:
步骤S1321,调用分布式集群的资源管理器将所述资源空闲节点按照所述内存数量、处理器核心数量进行排序;
举例说明,将满足配置参数中内存数量和处理器核心数量要求的资源空闲节点按资源从多到少的顺序进行排序。
步骤S1322,调用分布式集群的资源管理器将排序第一的资源空闲节点确定为用于运行所述应用程序的目标节点。
举例说明,将空闲资源最多的节点确定为运行所述应用程序的运行节点,保证运行所述应用程序的效率。
由于在分布式集群中存在多个节点,所以当应用程序被调度到任意一个节点时,会在那个节点的环境中运行。实施本发明实施例的方案,可以预先在上传应用程序(例如Python模型代码)的同时上传一个统一的标准的运行环境(例如Python虚拟环境)。这样,不论应用程序后续被调度到哪一台节点上运行,都会将应用程序本身的数据和该运行环境一并分发到该节点,该运行环境部署到该节点后,通过该运行环境来执行该应用程序。通过这种统一的运行环境方式,能够屏蔽掉不同节点上的环境和依赖差异,从而避免了现有方案中因为不同节点上的虚拟环境存在版本差异和依赖差异导致的运行问题。
本申请实施例提供一种分布式调度方法,所述应用程序为Python应用程序,所述运行环境为Python的虚拟环境;图2为本申请实施例分布式调度方法的实现流程示意图,如图2所示,该方法包括:
步骤S210,获取应用程序和所述应用程序运行需要的运行环境;
这里,应用程序为Python应用程序,运行环境为Python的虚拟环境。Python的虚拟环境即为可以运行Python应用程序的虚拟运行环境。虚拟运行环境可以是一个虚拟化的,从计算机资源中独立开辟出来的运行环境。在虚拟运行环境中,可以只安装运行Python应用程序需要的软件包,同一计算机中可以包括多个虚拟运行环境,各个虚拟运行环境之间互相隔离,互不影响。
步骤S220,确定所述应用程序的配置参数;
步骤S230,根据所述配置参数,生成配置文件;
这里,所述配置文件中至少包括所述配置参数。例如,所述配置参数可以为应用程序的存储位置。
举例说明,获取Python应用程序后,会自动生成配置文件,通过配置文件对Python应用程序和与Python应用程序相关的数据包进行存储。
步骤S240,根据所述配置文件,启动Skein模块;
这里,所述Skein模块基于Skein开源工具实现,用于将应用程序或者任务包提交到分布式集群资源管理器上,并在分布式的环境上运行。
步骤S250,调用所述Skein模块缓存所述Python应用程序和运行所述Python应用程序的虚拟环境;
举例说明,通过配置文件可以启动Skein模块并缓存Python应用程序和运行所述Python应用程序的虚拟环境。
步骤S260,根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点;
步骤S270,将所述应用程序和所述运行环境发送到所述目标节点,以通过所述目标节点在所述运行环境中运行所述应用程序。
在一些实施例中,所述步骤S250,调用所述Skein模块缓存所述Python应用程序和运行所述Python应用程序的虚拟环境,包括:
步骤S251,调用所述Skein模块将所述Python应用程序和运行所述Python应用程序的虚拟环境缓存在分布式文件系统;
这里,所述分布式文件系统可以为HDFS文件系统。
举例说明,以Python应用程序、Python应用程序的虚拟环境为例,通过Skein框架,将Python应用程序和Python应用程序的虚拟环境提交到分布式文件系统HDFS中。
对应地,所述步骤S270,将所述应用程序和所述运行环境发送到所述目标节点,包括:
步骤S271,调用所述Skein模块读取所述分布式文件系统中的所述Python应用程序和运行所述Python应用程序的虚拟环境;
步骤S272,调用所述Skein模块将所述Python应用程序和虚拟环境发送到所述目标节点;
举例说明,在确定分布式集群中的某一目标节点后,Skein从HDFS中将缓存的Python应用程序和Python应用程序的虚拟环境发送到该目标节点。
步骤S273,调用分布式文件系统清除缓存的所述Python应用程序和虚拟环境。
举例说明,将缓存的Python应用程序和Python应用程序的虚拟环境发送到目标节点后,清除HDFS上缓存的Python应用程序和Python应用程序的虚拟环境。
在一些实施例中,所述步骤S260,根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点,包括:
步骤S261,调用分布式集群的资源管理器确定分布式集群中满足所述配置参数的资源空闲节点;
这里,所述分布式集群的资源管理器可以为Yarn。通过Yarn可以识别分布式集群中有资源空闲的节点。
步骤S262,调用分布式集群的资源管理器根据所述资源空闲节点,确定用于运行所述Python应用程序的目标节点。
在实施过程中,确认目标节点后会通过HDFS将Python应用程序和Python虚拟环境发送到该目标节点,并在Python虚拟环境中执行Python应用程序,这样,能够屏蔽掉不同节点上的运行环境差异,做到统一运行环境。
在一些实施例中,所述配置参数中至少包括:运行所述Python应用程序所需的内存数量和处理器核心数量,所述步骤S261,调用分布式集群的资源管理器确定分布式集群中满足所述配置参数的资源空闲节点,包括:
步骤S2611,调用分布式集群的资源管理器确定分布式集群中满足所述配置参数中内存数量、处理器核心数量的资源空闲节点;
举例说明,通过Yarn可以识别分布式集群中有资源空闲的节点,统计资源空闲点中满足配置参数中内存数量和处理器核心数量要求的资源空闲节点。
对应地,所述步骤S262,调用分布式集群的资源管理器根据所述资源空闲节点,确定用于运行所述Python应用程序的目标节点,包括:
步骤S2621,调用分布式集群的资源管理器将所述资源空闲节点按照所述内存数量、处理器核心数量进行排序;
举例说明,将满足配置参数中内存数量和处理器核心数量要求的资源空闲节点按资源从多到少的顺序进行排序。
步骤S2622,调用分布式集群的资源管理器将排序第一的资源空闲节点确定为用于运行所述Python应用程序的目标节点。
举例说明,将空闲资源最多的节点确定为运行所述Python应用程序的目标节点,保证运行所述应用程序的效率。
在本申请实施例中,通过Skein与分布式集群的资源管理器的结合使用,使得应用程序的提交、调度和监控都能够通过分布式集群的资源管理器平台进行管理,并且,能够与其他通过分布式集群的资源管理器平台进行管理的工作流统一管理。这样,能够解决相关技术中,应用程序在本地运行的情况下,缺乏统一管理的问题,从而解决应用程序与常用大数据离线或实时任务产生的割裂以及无法在同一个平台进行管理的问题,提高了应用程序进行分布式调度的易用性。
本申请实施例提供一种分布式调度方法,图3为本申请实施例分布式调度方法的实现流程示意图,如图3所示,该方法包括:
步骤S310,获取应用程序和所述应用程序运行需要的运行环境;
步骤S320,确定所述应用程序的配置参数;
步骤S330,根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点;
步骤S340,将所述应用程序和所述运行环境发送到所述目标节点,以通过所述目标节点在所述运行环境中运行所述应用程序;
步骤S350,调用分布式集群的资源管理器监控所述目标节点的运行状态;
这里,监控所述目标节点的运行状态通过分布式集群的资源管理器实现。这里,监控所述目标节点的运行状态可以包括:所述目标节点的节点异常、所述目标节点的上线和下线行为。
步骤S360,在所述运行状态异常的情况下,将异常运行状态对应的告警信息发送给可视化界面。
举例说明,在检测到目标节点的节点异常的情况下,所述目标节点无法正常运行所述Python应用程序,此时,将包含目标节点的异常状态的告警信息发送到可视化界面上,相关人员根据界面中的告警信息,处理节点运行异常。
在一些实施例中,所述步骤S310,获取应用程序和所述应用程序运行需要的运行环境,包括:
步骤S311,检测可视化界面中导入的所述应用程序;
这里,所述可视化界面可以为前端界面,所述前端界面中可以包括:导入功能,用于导入应用程序。
步骤S312,根据所述应用程序的编写语言获取所述应用程序运行需要的运行环境。
举例说明,在所述应用程序为基于Python编程语言编写的应用程序的情况下,获取运行Python的虚拟环境,以在Python虚拟环境中运行基于Python编程语言编写的应用程序。
对应地,所述步骤S320,确定所述应用程序的配置参数,包括:
步骤S321,检测在所述可视化界面中输入的所述应用程序的配置参数;
这里,所述可视化界面还可以用于配置应用程序的消息系统地址、运行模型所需的内存数量,处理器核心数量等参数。
在本申请实施例中,通过可视化界面能够实现参数的可视化配置。用户上传应用程序后,通过指定配置文件的路径,可以在可视化界面配置应用程序的消息系统地址、运行模型所需的内存数量,处理器核心数量等参数。如此,能够通过可视化界面配置参数,实现界面化管理,解决缺少界面化管理的问题。
以应用程序为Python应用程序、分布式集群的资源管理器为Yarn、分布式文件系统为HDFS为例,相关技术中,存在以下问题:1)易用性差。使用Java等语言来实现Python应用程序的分布式调度,需要用户对Java语言和分布式架构非常熟悉,并且需要用户自行实现资源监控,节点选择等功能。2)缺少界面化管理。由于没有友好的操作界面,导致用户调度Python应用程序时操作不便,用户体验不佳。因此,使用Java等语言来实现Python应用程序的分布式调度方法难度较大,易用性差。
为解决上述问题,本申请实施例提供一种分布式调度方法,本申请实施例提供的分布式调度方法采用Yarn进行分布式集群的资源管理,通过封装Skein开源工具,以可视化的方式支持用户导入Python应用程序数据包,配置运行所述Python应用程序的配置参数,并能点击按钮将所述Python应用程序提交上线。上线后通过Yarn来实现资源的调度管理,在集群中选取运行节点,并在确认运行节点后将Python应用程序数据包和一个统一的Python虚拟环境通过分布式文件系统HDFS发送到该运行节点上并在Python虚拟环境上运行Python应用程序数据包。
本申请实施例基于开源的Skein框架构造了一个可视化、支持Python应用程序导入并提交上线的模块。在可视化界面中,可以对Python应用程序在yarn上运行所需要的资源比如核数内存进行配置。通过Skein将Python应用程序与虚拟运行环境提交到HDFS上,能够做到在Yarn上调度运行Python应用程序,并且无需担心分布式场景下的运行环境不一致的问题。
本申请实施例提供一种分布式调度方法,如图4A所示,所述方法包括三层:
第一层为Skein框架41,在该框架的支持下,需要准备好Python应用程序和Python虚拟环境,并配置好Skein相关的提交配置文件。其中,在用户提交Python应用程序的情况下,执行所分布式调度方法的后台程序会帮助用户提交一个Python虚拟环境。使用Skein能够提交Python应用程序与Python虚拟环境到HDFS上,进入下一层。
第二层为HDFS分布式文件系统42,当Python应用程序与Python虚拟环境发送到HDFS上缓存后,就已经进入了分布式系统,等待第三层的节点调度,一旦节点确认后就会发送到该节点,并在HDFS上清除缓存。
第三层为Yarn资源调度43,通过Yarn来识别有资源的可执行节点,确认后会通过HDFS将Python模型和Python虚拟环境发送到该节点,并在Python虚拟环境中执行Python模型,这样,能够屏蔽不同节点上可能存在的环境差异,统一运行环境。
本申请实施例提供一种分布式调度装置,如图4B所示,所述装置包括提交模块401、缓存模块402和调度模块403,其中:
提交模块401,用于提交应用程序和运行所述应用程序的虚拟环境;
举例说明,提交模块401主要基于Skein开源框架,在部署Skein后使用Skein提交Python应用程序和运行所述Python应用程序的虚拟环境。
这里,提交模块401提交的应用程序通过可视化界面400(前端界面)导入。
缓存模块402,用于缓存所述应用程序和运行所述应用程序的虚拟环境;
举例说明,缓存模块402基于HDFS分布式文件系统,会缓存Skein提交的应用程序和运行所述Python应用程序的虚拟环境。
调度模块403,用于分配运行所述应用程序的节点,并将所述应用程序和运行所述应用程序的虚拟环境分发到所述节点上。
举例说明,调度模块403基于Yarn进行资源调度,可以根据分布式系统集群中不同节点的资源使用量来分配Python应用程序的运行节点,分配运行节点后会将Python应用程序和运行所述Python应用程序的虚拟环境分发到节点上并执行。
本申请实施例提供一种分布式调度方法,所述方法包括:
步骤S501,获取应用程序的配置参数;
这里,所述应用程序可以为基于Python的应用程序。
这里,所述配置参数可以通过在分布式调度功能模块的前端页面进行添加,根据添加的配置参数获取配置的资源。
这里,所述配置参数可以为消息系统地址、运行所述应用程序所需的内存数量,处理器核心数量等。例如,可以为kafka地址、topic和运行所述应用程序所需的内存数量,处理器核心数量等资源使用量。
在一些实施例中,在步骤S501,获取应用程序的配置参数的同时,需要配置好基于Python的应用程序在Yarn上运行所需要的资源。
步骤S502,根据所述配置参数,生成配置文件;
这里,所述配置文件中至少包括所述配置参数。例如,所述配置参数可以为应用程序的存储位置。
举例说明,分布式调度功能模块在检测到Python应用程序上线后,会自动生成配置文件,通过配置文件使得Skein将Python应用程序数据包提交到分布式文件系统。
步骤S503,根据所述配置文件,确定所述应用程序的运行节点;
这里,所述运行节点为用于运行应用程序的目标节点,可以为分布式集群中满足配置文件条件的节点。
这里,通过所述分布式调度功能模块中的调度模块,为所述应用程序分配运行节点。
举例说明,Skein会通过Yarn来调度一个分布式集群中的运行节点。
步骤S504,将应用程序和运行所述应用程序的虚拟环境发送到所述运行节点,以通过所述运行节点在所述虚拟环境中运行所述应用程序;
举例说明,以Python应用程序、Python应用程序的虚拟环境为例,分布式调度功能模块通过提交模块,例如,Skein框架,将Python应用程序和Python应用程序的虚拟环境提交到分布式文件系统HDFS中。在确定分布式集群中的某一运行节点后,Skein从HDFS中将缓存的Python应用程序和Python应用程序的虚拟环境发送到该运行节点。
步骤S505,监控所述运行节点的运行状态。
这里,监控所述运行节点的运行状态通过分布式集群的资源管理器实现。这里,监控所述运行节点的运行状态可以包括:所述运行节点的节点异常、所述运行节点的上线和下线行为。
举例说明,通过Yarn来持续的监控运行节点的运行状态,以及后续的上下线行为。
举例说明,在运行节点无法正常运行所述Python应用程序的情况下,运行节点的节点发生异常。
在一些实施例中,通过Skein与Yarn的结合使用,使得Python应用程序的提交、调度和监控都能够通过Yarn平台进行管理,并且,能够与其他通过分布式集群的资源管理器平台进行管理的工作流统一。
举例说明,如图5所示,Python任务53(Python应用程序)能够与Spark任务51和Flink任务52一起通过Yarn平台进行统一管理。
在本申请实施例中,一方面,通过基于Skein的Python应用程序提交方法,可以在上传Python应用程序的同时提交运行所述Python应用程序的Python虚拟环境。这样,Python应用程序被调度到任一台节点上运行时,能够将Python应用程序的Python虚拟环境一并分发到该节点上,并使用分发的Python虚拟环境运行Python应用程序。如此,能够通过统一虚拟环境的方式,解决不同节点上的环境和依赖差异,从而解决由于不同节点上的环境和依赖差异而导致的运行问题。
另一方面,通过可视化界面能够实现参数的可视化配置。用户上传Python应用程序后,通过指定配置文件的路径,可以在可视化界面配置Python应用程序的消息系统地址、运行模型所需的内存数量,处理器核心数量等参数。如此,能够通过可视化界面配置参数,实现界面化管理,解决缺少界面化管理的问题。
再一方面,通过Skein与Yarn的结合使用,使得Python应用程序的提交、调度和监控都能够通过Yarn平台进行管理,并且,能够与其他通过分布式集群的资源管理器平台进行管理的工作流统一。这样,能够解决相关技术中,Python应用程序在本地运行的情况下,缺乏统一管理的问题,从而解决Python应用程序与常用大数据离线或实时任务产生的割裂,以及无法在同一个平台进行管理的问题,提高了Python模型进行分布式调度的易用性。
基于前述的实施例,本申请实施例提供一种分布式调度装置,该装置包括所包括的各模块、以及各模块所包括的各子模块、以及各子模块所包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图6为本申请实施例分布式调度装置的组成结构示意图,如图6所示,所述装置600包括第一获取模块601、第二获取模块602、确定模块603和第一发送模块604,其中:
第一获取模块601,用于获取应用程序和所述应用程序运行需要的运行环境;
第二获取模块602,用于确定所述应用程序的配置参数;
确定模块603,用于根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点;其中,所述分布式集群包括多个节点;
第一发送模块604,用于将所述应用程序和所述运行环境发送到所述目标节点,以通过所述目标节点在所述运行环境中运行所述应用程序。
在一些实施例中,所述装置600还包括生成模块、启动模块和缓存模块,其中:生成模块,用于根据所述配置参数,生成配置文件;启动模块,用于根据所述配置文件,启动Skein模块;缓存模块,用于调用所述Skein模块缓存所述Python应用程序和运行所述Python应用程序的虚拟环境。
在一些实施例中,所述缓存模块还用于调用所述Skein模块将所述Python应用程序和运行所述Python应用程序的虚拟环境缓存在分布式文件系统;所述第一发送模块603,包括读取子模块、发送子模块和清除子模块,其中:读取子模块,用于调用所述Skein模块读取所述分布式文件系统中的所述Python应用程序和运行所述Python应用程序的虚拟环境;发送子模块,用于调用所述Skein模块将所述Python应用程序和所述虚拟环境发送到所述目标节点;清除子模块,用于调用所述分布式文件系统清除缓存的所述Python应用程序和所述虚拟环境。
在一些实施例中,所述配置参数中至少包括:运行所述Python应用程序所需的内存数量和处理器核心数量,所述确定模块603包括第一确定子模块和第二确定子模块,其中:第一确定子模块,用于调用分布式集群的资源管理器确定分布式集群中满足所述配置参数的资源空闲节点;第二确定子模块,用于调用分布式集群的资源管理器根据所述资源空闲节点,确定用于运行所述Python应用程序的目标节点。
在一些实施例中,所述第一确定子模块用于调用分布式集群的资源管理器确定分布式集群中满足所述配置参数中内存数量、处理器核心数量的资源空闲节点;所述第二确定子模块,包括排序单元和确定单元,其中:排序单元,用于调用分布式集群的资源管理器将所述资源空闲节点按照所述内存数量、处理器核心数量进行排序;确定单元,用于调用分布式集群的资源管理器将排序第一的资源空闲节点确定为用于运行所述Python应用程序的目标节点。
在一些实施例中,所述装置600还包括监控模块和第二发送模块,其中:监控模块,用于调用分布式集群的资源管理器监控所述目标节点的运行状态;第二发送模块,用于在所述运行状态异常的情况下,将异常运行状态对应的告警信息发送给可视化界面。
在一些实施例中,所述第一获取模块601,包括第一检测模块和第三获取模块,其中:第一检测模块,用于检测可视化界面中导入的所述应用程序;第三获取模块,用于根据所述应用程序的编写语言获取所述应用程序运行需要的运行环境;所述第一获取模块601,包括:第二检测模块,用于检测在所述可视化界面中输入的所述应用程序的配置参数。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的分布式调度方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种计算机设备,包括存储器和处理器所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。
对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图7为本申请实施例中计算机设备的一种硬件实体示意图,如图7所示,该计算机设备700的硬件实体包括:处理器701、通信接口702和存储器703,其中
处理器701通常控制计算机设备700的总体操作。
通信接口702可以使计算机设备通过网络与其他终端或服务器通信。
存储器703配置为存储由处理器701可执行的指令和应用,还可以缓存待处理器701以及计算机设备700中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种分布式调度方法,其特征在于,所述方法包括:
获取应用程序和所述应用程序运行需要的运行环境;所述应用程序为Python应用程序,所述运行环境为Python的虚拟环境;
确定所述应用程序的配置参数;
根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点;其中,所述分布式集群包括多个节点;
根据所述配置参数,生成配置文件;
根据所述配置文件,启动Skein模块;
调用所述Skein模块将所述应用程序和运行所述应用程序的运行环境缓存在分布式文件系统;
调用所述Skein模块读取所述分布式文件系统中的所述应用程序和运行所述应用程序的运行环境;
调用所述Skein模块将所述应用程序和所述运行环境发送到所述目标节点,以通过所述目标节点在所述运行环境中运行所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述将所述应用程序和所述运行环境发送到所述目标节点,还包括:
调用所述分布式文件系统清除缓存的所述Python应用程序和所述虚拟环境。
3.根据权利要求1所述的方法,其特征在于,所述根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点,包括:
调用分布式集群的资源管理器确定分布式集群中满足所述配置参数的资源空闲节点;
调用分布式集群的资源管理器根据所述资源空闲节点,确定用于运行所述Python应用程序的目标节点。
4.根据权利要求3所述的方法,其特征在于,所述配置参数中至少包括:运行所述Python应用程序所需的内存数量和处理器核心数量,所述调用分布式集群的资源管理器确定分布式集群中满足所述配置参数的资源空闲节点,包括:
调用分布式集群的资源管理器确定分布式集群中满足所述配置参数中内存数量、处理器核心数量的资源空闲节点;
对应地,所述调用分布式集群的资源管理器根据所述资源空闲节点,确定用于运行所述Python应用程序的目标节点,包括:
调用分布式集群的资源管理器将所述资源空闲节点按照所述内存数量、处理器核心数量进行排序;
调用分布式集群的资源管理器将排序第一的资源空闲节点确定为用于运行所述Python应用程序的目标节点。
5.根据权利要求1所述的方法,其特征在于,所述获取应用程序和所述应用程序运行需要的运行环境,包括:
检测可视化界面中导入的所述应用程序;
根据所述应用程序的编写语言获取所述应用程序运行需要的运行环境;
所述确定所述应用程序的配置参数,包括:
检测在所述可视化界面中输入的所述应用程序的配置参数。
6.根据权利要求1至5任一项所述的方法,其特征在于,在所述将所述应用程序和所述运行环境发送到所述目标节点之后,所述方法还包括:
调用分布式集群的资源管理器监控所述目标节点的运行状态;
在所述运行状态异常的情况下,将异常运行状态对应的告警信息发送给可视化界面。
7.一种分布式调度装置,其特征在于,所述装置包括:
第一获取模块,用于获取应用程序和所述应用程序运行需要的运行环境;所述应用程序为Python应用程序,所述运行环境为Python的虚拟环境;
第二获取模块,用于确定所述应用程序的配置参数;
确定模块,用于根据所述配置参数,在分布式集群中进行节点调度,确定用于运行所述应用程序的目标节点;其中,所述分布式集群包括多个节点;
生成模块,用于根据所述配置参数,生成配置文件;
启动模块,用于根据所述配置文件,启动Skein模块;
缓存模块,用于调用所述Skein模块将所述应用程序和运行所述应用程序的运行环境缓存在分布式文件系统;
第一发送模块,用于调用所述Skein模块读取所述分布式文件系统中的所述应用程序和运行所述应用程序的运行环境;调用所述Skein模块将所述应用程序和所述运行环境发送到所述目标节点,以通过所述目标节点在所述运行环境中运行所述应用程序。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一项所述方法中的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110438316.9A CN113225388B (zh) | 2021-04-22 | 2021-04-22 | 一种分布式调度方法及装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110438316.9A CN113225388B (zh) | 2021-04-22 | 2021-04-22 | 一种分布式调度方法及装置、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113225388A CN113225388A (zh) | 2021-08-06 |
CN113225388B true CN113225388B (zh) | 2023-05-16 |
Family
ID=77088697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110438316.9A Active CN113225388B (zh) | 2021-04-22 | 2021-04-22 | 一种分布式调度方法及装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113225388B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286682A (zh) * | 2020-10-27 | 2021-01-29 | 上海淇馥信息技术有限公司 | 基于分布式集群的机器学习任务处理方法、装置及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8166165B1 (en) * | 2007-03-13 | 2012-04-24 | Adobe Systems Incorporated | Securing event flow in a user interface hierarchy |
CN107291546B (zh) * | 2016-03-30 | 2020-07-14 | 华为技术有限公司 | 一种资源调度方法及装置 |
CN109885377B (zh) * | 2018-11-23 | 2023-04-28 | 中国银联股份有限公司 | 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度系统 |
CN112463376A (zh) * | 2020-11-26 | 2021-03-09 | 北京字节跳动网络技术有限公司 | 一种资源分配方法及装置 |
-
2021
- 2021-04-22 CN CN202110438316.9A patent/CN113225388B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286682A (zh) * | 2020-10-27 | 2021-01-29 | 上海淇馥信息技术有限公司 | 基于分布式集群的机器学习任务处理方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113225388A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pielot et al. | Beyond interruptibility: Predicting opportune moments to engage mobile phone users | |
CN108153670B (zh) | 一种接口测试方法、装置及电子设备 | |
US11741412B2 (en) | Event-based composition model for workflow systems | |
US20160343001A1 (en) | Multi-channel customer support and service | |
US10536483B2 (en) | System and method for policy generation | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
US20090282413A1 (en) | Scalable Scheduling of Tasks in Heterogeneous Systems | |
US20160203436A1 (en) | Methods and systems for presenting and assigning tasks | |
CN109995612B (zh) | 一种服务巡检方法、装置及电子设备 | |
CN112905323B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US11073970B2 (en) | Dashboard generation based on user interaction | |
CN109885624A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
WO2016007679A1 (en) | Virtualized execution across distributed nodes | |
CN110516714B (zh) | 一种特征预测方法、系统及引擎 | |
CN111953558A (zh) | 敏感信息的监控方法、装置、电子设备及存储介质 | |
CN110781180A (zh) | 一种数据筛选方法和数据筛选装置 | |
US20200150957A1 (en) | Dynamic scheduling for a scan | |
WO2019028114A1 (en) | RESEARCH AND INVENTORY IN CLOUD | |
CN110363544A (zh) | 事件处理方法、装置、电子设备及存储介质 | |
CN113225388B (zh) | 一种分布式调度方法及装置、设备、存储介质 | |
CN113298331A (zh) | 一种工单处理方法、装置、系统及电子设备 | |
US20090112704A1 (en) | Management tool for efficient allocation of skills and resources | |
CN111240998A (zh) | 测试用例处理方法和装置 | |
CN114090268B (zh) | 容器管理方法及容器管理系统 | |
US20140115071A1 (en) | Tag management of information technology services improvement |
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 |