CN111767345B - 建模数据同步方法、装置、计算机设备及可读存储介质 - Google Patents
建模数据同步方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN111767345B CN111767345B CN202010622719.4A CN202010622719A CN111767345B CN 111767345 B CN111767345 B CN 111767345B CN 202010622719 A CN202010622719 A CN 202010622719A CN 111767345 B CN111767345 B CN 111767345B
- Authority
- CN
- China
- Prior art keywords
- preset
- container
- modeling data
- request
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000003860 storage Methods 0.000 title claims abstract description 28
- 238000009826 distribution Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- 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
-
- 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/45562—Creating, deleting, cloning virtual machine instances
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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
Abstract
本申请实施例提供了一种基于容器的建模数据同步方法、装置、计算机设备及计算机可读存储介质。本申请属于数据建模技术领域,实现建模数据同步时,服务器端包括多个物理机组,服务器端接收前端获取建模数据的请求,通过预设容器将前端按照预设分配方式分配至多个物理机组中的目标物理机组,预设容器是基于数据仓库工具镜像而构建的,且数据仓库工具镜像中包含有与物理机进行连接的客户端,通过将数据仓库工具所对应的服务制作成镜像容器,将数据仓库工具所对应的服务部署在容器中,通过容器分配至不同的物理机组,然后通过预设容器从目标物理机组上发送建模数据至前端,支持大数据量任务的下载,提高了建模数据同步的效率。
Description
技术领域
本申请涉及数据建模技术领域,尤其涉及一种基于容器的建模数据同步方法、装置、计算机设备及计算机可读存储介质。
背景技术
数据是人工智能模型(人工智能,英文为ArtificialIntelligence,英文缩写为AI,人工智能模型,简称为AI模型)进行计算最基础和重要的环境,是所有AI模型需要依赖的基础。目前AI模型所需的建模数据来源主要是通过从存储大数据的数据仓库(比如Hive表)中获取而得到。传统技术中,从数据仓库中获取AI模型所需要的建模数据主要存在两种方式,第一种是JDBC方式,JDBC,英文为Java DataBase Connectivity,Java数据库连接,是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成,另一种方式通过Hive的Client的方式(即Hive客户端的方式)。
其中,采取JDBC方式下载建模数据,需要指定用户名和密码,通过调用接口方式下载数据,使用时占有很大资源,执行过程中会一直占用资源,执行速度慢,并且执行过程不稳定,易发生中断,从而导致AI模型获取建模数据效率较低。而Hive的Client方式下载建模数据,下载速度特别快,若下载数据任务过多,对服务器的IO需要很高的要求,很容易服务器堵塞,从而导致AI模型获取建模数据效率较低。因此,传统技术中AI模型获取建模数据存在效率较低的风险。
发明内容
本申请实施例提供了一种基于容器的建模数据同步方法、装置、计算机设备及计算机可读存储介质,能够解决传统技术中AI模型获取建模数据存在效率较低的风险的问题。
第一方面,本申请实施例提供了一种基于容器的建模数据同步方法,应用于服务器端,所述服务器端包括多个物理机组,每个所述物理机组包括至少一台物理机,所述方法包括:接收前端获取建模数据的请求,根据所述请求,通过预设容器将所述前端按照预设分配方式分配至所述多个物理机组中的目标物理机组,以使所述前端通过所述预设容器中所配置的客户端与所述目标物理机组之间建立连接,所述预设容器是基于数据仓库工具镜像而构建的,所述数据仓库工具镜像中包含有用于与所述物理机进行连接的所述客户端;通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端,以实现将所述建模数据从服务器端同步至所述前端。
第二方面,本申请实施例还提供了一种基于容器的建模数据同步装置,应用于服务器端,所述服务器端包括多个物理机组,每个所述物理机组包括至少一台物理机,包括:接收单元,用于接收前端获取建模数据的请求;建立单元,用于根据所述请求,通过预设容器将所述前端按照预设分配方式分配至所述多个物理机组中的目标物理机组,以使所述前端通过所述预设容器中所配置的客户端与所述目标物理机组之间建立连接,所述预设容器是基于数据仓库工具镜像而构建的,所述数据仓库工具镜像中包含有用于与所述物理机进行连接的所述客户端;发送单元,用于通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端,以实现将所述建模数据从服务器端同步至所述前端。
第三方面,本申请实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现所述基于容器的建模数据同步方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器执行所述基于容器的建模数据同步方法的步骤。
本申请实施例提供了一种基于容器的建模数据同步方法、装置、计算机设备及计算机可读存储介质。本申请实施例实现基于容器的建模数据同步时,所述服务器端包括多个物理机组,每个所述物理机组包括至少一台物理机,服务器端接收前端获取建模数据的请求,根据所述请求,通过预设容器将所述前端按照预设分配方式分配至目标物理机组,其中,由于预设容器是基于数据仓库工具镜像而构建的,且所述数据仓库工具镜像中包含有用于与所述物理机进行连接的所述客户端,因此,所述前端与所述目标物理机组之间可以通过所述目标预设容器建立连接,相比传统技术中,将数据仓库工具所对应的服务直接部署在固定物理机上,本申请实施例中通过将数据仓库工具所对应的服务制作成镜像容器,将数据仓库工具所对应的服务部署在容器中,并且通过镜像容器分配至不同的物理机组上,然后通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端,从而实现将所述建模数据从服务器端同步至所述前端,由于前端下载建模数据不局限于固定的物理机,不同的建模任务从不同的物理机组上进行建模数据的下载,执行下载的服务器不会占用很大的内存,避免了传统技术中存在的很容易服务器堵塞的风险,解决了传统技术中大数据传输的IO问题,支持大数据量任务的下载,能够提高下载速度,并且采用了数据仓库工具客户端的连接方式,能够使大数据从服务器端下载更加稳定,不会出现下载中断的问题,提高了建模数据同步的效率,从根本上避免了传统技术中AI模型获取建模数据存在的效率较低的风险。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的基于容器的建模数据同步方法的一个流程示意图;
图2为本申请实施例提供的基于容器的建模数据同步方法的一个具体实施例的基于框架的流程示意图;
图3为本申请实施例提供的基于容器的建模数据同步方法的一个子流程示意图;
图4为本申请实施例提供的基于容器的建模数据同步装置的一个示意性框图;以及
图5为本申请实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
请参阅图1,图1为本申请实施例提供的基于容器的建模数据同步方法的一个流程示意图。如图1所示,所述方法应用于服务器端,所述服务器端包括多个物理机组,每个所述物理机组包括至少一台物理机,每组物理机至少包括一台物理机,如图1所示,该方法包括以下步骤S101-S103:
S101、接收前端获取建模数据的请求。
具体地,由于一般情况下,人工智能模型基于大数据而建立,当前端建立人工智能模型(即AI模型)时,需要从服务器端获取建立模型所需要的大数据,即建模数据,以建立人工智能模型。因此存在建模任务的前端会向服务器端申请获取建模数据,比如,前端通过运行SQL语句向服务器端申请获取建模数据,其中,前端为建模任务所在的计算机设备,一般为研发人员使用的计算机终端,比如前端可以为台式机电脑或者笔记本电脑等。
S102、根据所述请求,通过预设容器将所述前端按照预设分配方式分配至所述多个物理机组中的目标物理机组,以使所述前端通过所述预设容器中所配置的客户端与所述目标物理机组之间建立连接,所述预设容器是基于数据仓库工具镜像而构建的,所述数据仓库工具镜像中包含有用于与所述物理机进行连接的所述客户端。
具体地,在服务器端,通过将数据仓库工具制作成数据仓库工具容器(即Docker),该数据仓库工具容器中包含数据仓库服务的客户端(英文为Client),以使数据仓库工具容器能够通过该客户端和数据仓库进行连接,再将该数据仓库工具容器制作成镜像,从而得到数据仓库工具容器镜像,也可以称为数据仓库工具镜像,其中,在制作该数据仓库工具容器时,把本应该部署在物理机上的数据仓库工具服务,部署在Docker(即容器)中,然后通过数据仓库服务客户端配置数据仓库工具服务的连接信息,比如,若数据仓库工具为Hive,即预先搭建一个Hive镜像,该Hive镜像中包含Hive的Client端,由于Client端可以和Hive服务网络建立连接,从而使Hive镜像能够和自己需要访问的Hive服务网络实现连通。例如,请参阅图2,图2为本申请实施例提供的基于容器的建模数据同步方法的一个具体实施例的基于框架的流程示意图,首先制作一个Hive镜像,Hive服务分别部署在Docker1(容器)和Docker2中,Hive中包含Client端,Hive镜像中包含有Docker容器1及Docker容器2,Docker容器1、Docker容器2可以支持不同的SQL,属于不同的容器节点,并通过K8S(即Kubernetes)管理和控制Docker容器。Hive构建好后,存在建模任务的前端运行SQL语句,将SQL语句发送至服务端的Hive镜像,向服务器端申请获取建模数据,服务器端根据SQL,选择支持该SQL的Docke1容器,以使该Docker1容器服务该前端,K8S根据预设分配方式将Docker1分配至物理机3,以使前端通过该Docker1与物理机3进行连接,从而前端从物理机3上进行建模数据的下载。
服务器端接收到前端获取建模数据的请求后,根据所述请求,通过预设容器将所述前端按照预设分配方式分配至目标物理机组,比如,可以根据物理机的业务分类,或者物理机的繁忙程度将前端分配至不同的物理机,以使所述前端与所述目标物理机组之间通过所述目标预设容器建立连接,由于所述预设容器是基于数据仓库工具镜像而构建的,所述数据仓库工具镜像中包含有用于与所述物理机进行连接的所述客户端,因此,前端可以通过该预设容器与物理机上的数据仓库建立连接。
S103、通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端,以实现将所述建模数据从服务器端同步至所述前端。
具体地,前端通过预设容器与物理机建立连接后,执行获取建模数据的脚本,实现前端开始与物理机上的数据仓库进行对接,以使前端完成建模数据下载,比如,前端与物理机建立连接后,可以使用K8S通过管理容器执行获取数据的SQL,实现前端开始与物理机上的大数据Hive对接,以使前端完成数据下载。
本申请实施例实现基于容器的建模数据同步时,所述服务器端包括多个物理机组,每个所述物理机组包括至少一台物理机,每组物理机可以包括一台物理机,服务器端接收前端获取建模数据的请求,根据所述请求,通过预设容器将所述前端按照预设分配方式分配至目标物理机组,其中,由于预设容器是基于数据仓库工具镜像而构建的,且所述数据仓库工具镜像中包含有用于与所述物理机进行连接的所述客户端,因此,所述前端与所述目标物理机组之间可以通过所述目标预设容器建立连接,相比传统技术中,将数据仓库工具所对应的服务直接部署在固定物理机上,本发明中通过将数据仓库工具所对应的服务制作成镜像容器,将数据仓库工具所对应的服务部署在容器中,并且通过镜像容器分配至不同的物理机上,然后通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端,从而实现将所述建模数据从服务器端同步至所述前端,由于前端下载建模数据不局限于固定的物理机,不同的建模任务从不同的物理机组上进行建模数据的下载,执行下载的服务器不会占用很大的内存,避免了传统技术中存在的很容易服务器堵塞的风险,解决了传统技术中大数据传输的IO问题,支持大数据量任务的下载,能够提高下载速度,并且采用了数据仓库工具客户端的连接方式,能够使大数据从服务器端下载更加稳定,不会出现下载中断的问题,提高了建模数据同步的效率,从根本上避免了传统技术中AI模型获取建模数据存在的效率较低的风险。
请参阅图3,图3为本申请实施例提供的基于容器的建模数据同步方法的一个子流程示意图。如图3所示,在该实施例中,所述通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端的步骤包括:
S301、判断所述预设容器与所述目标物理机组是否建立连接。
具体地,由于预设容器是基于数据仓库工具镜像而构建的,所述数据仓库工具镜像中包含有用于与所述物理机进行连接的所述客户端,因此,前端可以基于预设容器中的预设客户端与物理机建立连接,服务器端可以通过预设客户端与物理机的连接状态,判断所述预设容器与所述目标物理机组是否建立连接。
S302、若所述预设容器与所述目标物理机组建立连接,在所述预设容器中创建预设用户账户。
具体地,若服务器端判断所述预设容器与所述目标物理机组建立连接,在所述预设容器中创建预设用户账户。比如,服务器端可以通过K8S管理和控制容器,前端发送SQL语句至HIVE镜像后,根据SQL语句,将该前端分配至对应的支持该SQL语句的容器,由于K8S可以创建账户,而Hive可以创建角色、授权给角色及将角色授权给用户组或者用户,因此,在该容器中,通过K8S结合Hive表可以创建用户账户,即根据Kuberntes(即K8S,基于多台物理机搭建)的预设配置,使用已经准备好的Hive镜像及Hive镜像中包括的Docker,以及根据预先设置的Hive表的权限用户(通过Hive可以管理多用户并控制权限,可以实现对Hive表的权限管理),生成相应的Yaml文件(一种配置文件),准备好需要执行的生成用户账户的Shell脚本,从而在所对应的容器中生成用户账户。其中,生成用户账户,是当容器通过K8S分配到不同物理机,该容器会执行Shell脚本,该Shell脚本执行流程会先根据预设的hive表权限在容器中生成用户账户。其中,Kubernetes(即K8S)是自动化容器操作的开源平台,这些操作包括部署、调度和节点集群间扩展,可以将Docker看成Kubernetes内部使用的低级别组件。比如,若前端运行的SOL语句,通过SQL语句发送获取建模数据的请求,即存在建模任务的前端运行SQL语句,向服务器端申请有权限的用户账户,后续前端通过该用户账户从服务器端所包含的物理机上获取需要的建模数据。服务器端的K8S应用接收到SQL语句所对应的请求后,根据SQL语句,将该前端分配至对应的支持该SQL语句的容器,并在所对应的容器中根据预先配置创建用户账户。
S303、通过所述预设用户账户从所述目标物理机组上发送所述请求所对应的建模数据至所述前端。
具体地,前端与物理机建立连接后,服务器端通过所述预设用户账户从所述目标物理机组上发送所述请求所对应的建模数据至所述前端。比如,服务器将前端申请获取建模数据的连接分配至物理机上之后,开始运行设置的脚本,准备好环境切换到创建的该用户账户下面,并执行取数语句,例如K8S通过管理容器执行获取数据的SQL,使用该用户账户,实现前端开始与物理机上的大数据hive对接,以使前端完成数据下载。
请继续参阅图3,所述通过所述预设用户账户从所述目标物理机组上发送所述请求所对应的建模数据至所述前端的步骤之后,还包括:
S304、判断所述建模数据是否发送完毕;
S305、若所述建模数据发送完毕,删除所述预设用户账户。
具体地,运行完取数脚本后,物理机完成将数据传输给前端的建模任务,若服务器端判断所述建模数据发送完毕,删除所述预设用户账户。比如,若使用K8S管理该预设容器,前端从物理机上完成数据下载后,K8S删除该创建的有权限的用户账户,从而完成基于容器的大数据同步。其中,摧毁k8s的pod,即通过删除命令删除创建的用户账户。可见,本发明中,创建的该用户账户与实际的物理机用户账户是不一样的,当K8S的容器停掉时,该用户账户也被取消了,该过程不需要用到物理机的Root用户),相比传统技术中创建过多的物理机账户,本发明的技术方案不会使得物理机用户过多,这样能解决对用户的扩展。
在一个实施例中,所述服务器端包含多个预设容器,且所述请求中包含请求类型;
所述根据所述请求,通过预设容器将所述前端按照预设分配方式分配至所述多个物理机组中的目标物理机组,以使所述前端通过所述预设容器中所配置的客户端与所述目标物理机组之间建立连接的步骤包括:
根据所述请求类型,将所述请求分配至与所述请求类型所对应的目标预设容器;
通过所述目标预设容器将所述前端按照预设分配方式分配至目标物理机组,以使所述前端与所述目标物理机组之间通过所述目标预设容器建立连接。
具体地,设置多个预设容器,不同的预设容器支持不同的前端所对应的不同请求类型,前端发送获取建模数据的请求时,所述请求中携带请求类型,服务器根据请求类型将前端分配至支持该请求类型的预设容器,即所述服务器端包含多个预设容器,且所述请求中包含请求类型,服务器端根据所述请求类型,将所述请求分配至与所述请求类型所对应的目标预设容器,然后通过所述目标预设容器将所述前端按照预设分配方式分配至目标物理机组,以使所述前端与所述目标物理机组之间通过所述目标预设容器建立连接,相比传统技术中通过一个连接入口连接服务器,本发明中通过不同的预设容器作为前端连接服务器端不同物理机的连接入口,将大数据下载的任务进行分散,能够减轻连接入口传输数据的压力,由于不同的建模任务从不同的物理机组上进行建模数据的下载,执行下载的服务器不会占用很大的内存,避免了传统技术中存在的很容易服务器堵塞的风险,解决了传统技术中大数据传输的IO问题,支持大数据量任务的下载,能够提高下载速度。
在一个实施例中,所述通过所述目标预设容器将所述前端按照预设分配方式分配至目标物理机组的步骤包括:
根据预先配置,所述配置包括下载权限设置,生成配置文件;
根据所述配置文件,创建资源对象单元;
通过所述资源对象单元将所述目标预设容器分配至目标物理机组。
具体地,根据预先配置,所述配置包括下载权限设置,生成配置文件,根据所述配置文件,创建资源对象单元,通过所述资源对象单元将所述预设容器配置至目标物理机组。比如,若服务器端使用K8S管理容器,服务器通过K8S根据Yaml文件生成相应的POD,会根据预设分配策略,比如,根据物理机的繁忙程度,或者根据数据的预设分类等,将POD自动分配到不同的服务器所包含的物理机组上面,以建立前端与物理机组之间的连接。其中,POD是Kubernetes最基本的执行单元(最小、最简单的单元),POD表示在集群上运行的进程,POD封装了应用程序容器(某些情况下可以包含多个容器),存储资源、唯一网络IP以及控制器该如何运行的选项。请参阅图2,前端在选择HIVE自制镜像后,发送SQL语句至服务器端的K8S,K8S将前端分配至不同的容器节点,通过容器节点实现前端从HIVE服务网络的物理机上获取数据,从而实现将前端切换到创建的用户中直接执行Hive的SQL语句,完成数据下载,相比传统技术中将数据仓库工具服务部署在固定物理机上,本发明中通过容器镜像,将前端到分配到不同的物理机上运行,解决了只把建模任务获取建模数据的任务只放在一台物理机的IO问题。
本申请实施例通过Docker制作的Hive镜像,在制作该镜像时,把本应该部署在物理机服务器的Hive服务,部署在容器中,然后配置Hive服务连接信息,然后制作成镜像。当容器通过K8S分配到不同服务器,该容器会执行Shell脚本,脚本执行流程会先根据预设的Hive表权限在容器中生成用户账户,当K8S的容器停掉时该用户账户也被取消了,由于该过程不需要用到物理机的Root用户,而实际的物理机用户需要用到ROOT用户,因此,该用户账户与实际的物理机用户是不一样的,从而不会使得物理机用户过多,这样能解决对用户的扩展,然后切换到创建的用户中直接执行Hive的SQL语句,完成数据下载,实现分配到不同的物理机上运行,解决了只把任务放在一台物理机的IO的问题。本申请解决了建模数据从大数据Hive中的获取方式,提供给AI模型计算运行,与目前的JDBC方式相比,具有以下好处:1)不仅在下载速度上面提升了好几倍,在下载过程中更加稳定,不会出现中断的过程。2)执行下载的服务器不会占用很大的内存,资源得到释放。并且,与Hive的Client方式像相比:①在物理机的服务器中不需要创建跟Hive表有权限相关的用户,可扩展性强。②解决了传统技术中建模数据的IO问题,通过将前端分配到不同物理机上,支持大量数据任务的下载。
需要说明的是,上述各个实施例所述的基于容器的建模数据同步方法,可以根据需要将不同实施例中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本申请要求的保护范围之内。
请参阅图4,图4为本申请实施例提供的基于容器的建模数据同步装置的一个示意性框图。对应于上述所述基于容器的建模数据同步方法,本申请实施例还提供一种基于容器的建模数据同步装置。如图4所示,该基于容器的建模数据同步装置包括用于执行上述所述基于容器的建模数据同步方法的单元,该基于容器的建模数据同步装置可以被配置于服务器端所包含的物理机所对应的计算机设备中,或者被配置与服务器端单独的计算机设备上,该计算机设备再与物理机组进行连接,所述服务器端包括多个物理机组,每个所述物理机组包括至少一台物理机。具体地,请参阅图4,该基于容器的建模数据同步装置400包括接收单元401、建立单元402及发送单元403。
其中,接收单元401,用于接收前端获取建模数据的请求;
建立单元402,用于根据所述请求,通过预设容器将所述前端按照预设分配方式分配至所述多个物理机组中的目标物理机组,以使所述前端通过所述预设容器中所配置的客户端与所述目标物理机组之间建立连接,所述预设容器是基于数据仓库工具镜像而构建的,所述数据仓库工具镜像中包含有用于与所述物理机进行连接的所述客户端;
发送单元403,用于通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端,以实现将所述建模数据从服务器端同步至所述前端。
在一个实施例中,所述发送单元403包括:
判断子单元,用于判断所述预设容器与所述目标物理机组是否建立连接;
创建子单元,用于若所述预设容器与所述目标物理机组建立连接,在所述预设容器中创建预设用户账户;
发送子单元,用于通过所述预设用户账户从所述目标物理机组上发送所述请求所对应的建模数据至所述前端。
在一个实施例于,所述装置400还包括:
判断单元,用于判断所述建模数据是否发送完毕;
删除子单元,用于若所述建模数据发送完毕,删除所述预设用户账户。
在一个实施例中,所述服务器端包含多个预设容器,且所述请求中包含请求类型;所述建立单元402包括:
分配子单元,用于根据所述请求类型,将所述请求分配至与所述请求类型所对应的目标预设容器;
建立子单元,用于通过所述目标预设容器将所述前端按照预设分配方式分配至目标物理机组,以使所述前端与所述目标物理机组之间通过所述目标预设容器建立连接。
在一个实施例中,所述建立子单元包括:
生成子单元,用于根据预先配置,所述配置包括下载权限设置,生成配置文件;
创建子单元,用于根据所述配置文件,创建资源对象单元;
配置子单元,用于通过所述资源对象单元将所述目标预设容器分配至目标物理机组。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述基于容器的建模数据同步装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
同时,上述基于容器的建模数据同步装置中各个单元的划分和连接方式仅用于举例说明,在其他实施例中,可将基于容器的建模数据同步装置按照需要划分为不同的单元,也可将基于容器的建模数据同步装置中各单元采取不同的连接顺序和方式,以完成上述基于容器的建模数据同步装置的全部或部分功能。
上述基于容器的建模数据同步装置可以实现为一种计算机程序的形式,该计算机程序可以在如图5所示的计算机设备上运行。
请参阅图5,图5是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是台式机电脑或者服务器等计算机设备,也可以是其他设备中的组件或者部件。
参阅图5,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行一种上述基于容器的建模数据同步方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种上述基于容器的建模数据同步方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图5所示实施例一致,在此不再赘述。
其中,该基于容器的建模数据同步方法,应用于服务器端,服务器端包括多个物理机组,每个所述物理机组包括至少一台物理机,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:接收前端获取建模数据的请求;根据所述请求,通过预设容器将所述前端按照预设分配方式分配至所述多个物理机组中的目标物理机组,以使所述前端通过所述预设容器中所配置的客户端与所述目标物理机组之间建立连接,所述预设容器是基于数据仓库工具镜像而构建的,所述数据仓库工具镜像中包含有用于与所述物理机进行连接的所述客户端;通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端,以实现将所述建模数据从服务器端同步至所述前端。
在一实施例中,所述处理器502在实现所述通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端的步骤时,具体实现以下步骤:判断所述预设容器与所述目标物理机组是否建立连接;若所述预设容器与所述目标物理机组建立连接,在所述预设容器中创建预设用户账户;通过所述预设用户账户从所述目标物理机组上发送所述请求所对应的建模数据至所述前端。
在一实施例中,所述处理器502在实现所述通过所述预设用户账户从所述目标物理机组上发送所述请求所对应的建模数据至所述前端的步骤之后,还实现以下步骤:
判断所述建模数据是否发送完毕;若所述建模数据发送完毕,删除所述预设用户账户。
在一实施例中,所述服务器端包含多个预设容器,且所述请求中包含请求类型;所述处理器502在实现所述根据所述请求,通过预设容器将所述前端按照预设分配方式分配至所述多个物理机组中的目标物理机组,以使所述前端通过所述预设容器中所配置的客户端与所述目标物理机组之间建立连接的步骤时,具体实现以下步骤:
根据所述请求类型,将所述请求分配至与所述请求类型所对应的目标预设容器;通过所述目标预设容器将所述前端按照预设分配方式分配至目标物理机组,以使所述前端与所述目标物理机组之间通过所述目标预设容器建立连接。
在一实施例中,所述处理器502在实现所述通过所述目标预设容器将所述前端按照预设分配方式分配至目标物理机组的步骤时,具体实现以下步骤:
根据预先配置,所述配置包括下载权限设置,生成配置文件;根据所述配置文件,创建资源对象单元;通过所述资源对象单元将所述目标预设容器分配至目标物理机组。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来完成,该计算机程序可存储于一计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本申请还提供一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行如下步骤:
一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的所述基于容器的建模数据同步方法的步骤。
所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述存储介质为实体的、非瞬时性的存储介质,例如可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储计算机程序的实体存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
以上所述,仅为本申请的具体实施方式,但本申请明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (6)
1.一种基于容器的建模数据同步方法,应用于服务器端,所述服务器端包括多个物理机组,每个所述物理机组包括至少一台物理机,其特征在于,所述方法包括:
接收前端获取建模数据的请求;
根据所述请求,通过预设容器将所述前端按照预设分配方式分配至所述多个物理机组中的目标物理机组,以使所述前端通过所述预设容器中所配置的客户端与所述目标物理机组之间建立连接,所述预设容器是基于数据仓库工具镜像而构建的,所述数据仓库工具镜像中包含有用于与所述物理机进行连接的所述客户端;
通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端,以实现将所述建模数据从服务器端同步至所述前端;
所述通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端的步骤包括:
判断所述预设容器与所述目标物理机组是否建立连接;
若所述预设容器与所述目标物理机组建立连接,在所述预设容器中创建预设用户账户;
通过所述预设用户账户从所述目标物理机组上发送所述请求所对应的建模数据至所述前端;
所述服务器端包含多个预设容器,且所述请求中包含请求类型;
所述根据所述请求,通过预设容器将所述前端按照预设分配方式分配至所述多个物理机组中的目标物理机组,以使所述前端通过所述预设容器中所配置的客户端与所述目标物理机组之间建立连接的步骤包括:
根据所述请求类型,将所述请求分配至与所述请求类型所对应的目标预设容器;
通过所述目标预设容器将所述前端按照预设分配方式分配至目标物理机组,以使所述前端与所述目标物理机组之间通过所述目标预设容器建立连接;
所述通过所述目标预设容器将所述前端按照预设分配方式分配至目标物理机组的步骤包括:
根据预先配置,所述配置包括下载权限设置,生成配置文件;
根据所述配置文件,创建资源对象单元;
通过所述资源对象单元将所述目标预设容器分配至目标物理机组。
2.根据权利要求1所述基于容器的建模数据同步方法,其特征在于,所述通过所述预设用户账户从所述目标物理机组上发送所述请求所对应的建模数据至所述前端的步骤之后,还包括:
判断所述建模数据是否发送完毕;
若所述建模数据发送完毕,删除所述预设用户账户。
3.一种基于容器的建模数据同步装置,所述装置用于实现如权利要求1-2中任一项所述方法,包括:
接收单元,用于接收前端获取建模数据的请求;
建立单元,用于根据所述请求,通过预设容器将所述前端按照预设分配方式分配至多个物理机组中的目标物理机组,以使所述前端通过所述预设容器中所配置的客户端与所述目标物理机组之间建立连接,所述预设容器是基于数据仓库工具镜像而构建的,所述数据仓库工具镜像中包含有用于与物理机进行连接的所述客户端;
发送单元,用于通过所述预设容器从所述目标物理机组上发送所述请求所对应的建模数据至所述前端,以实现将所述建模数据从服务器端同步至所述前端;
所述发送单元包括:
判断子单元,用于判断所述预设容器与所述目标物理机组是否建立连接;
创建子单元,用于若所述预设容器与所述目标物理机组建立连接,在所述预设容器中创建预设用户账户;
发送子单元,用于通过所述预设用户账户从所述目标物理机组上发送所述请求所对应的建模数据至所述前端;
所述服务器端包含多个预设容器,且所述请求中包含请求类型;所述建立单元包括:
分配子单元,用于根据所述请求类型,将所述请求分配至与所述请求类型所对应的目标预设容器;
建立子单元,用于通过所述目标预设容器将所述前端按照预设分配方式分配至目标物理机组,以使所述前端与所述目标物理机组之间通过所述目标预设容器建立连接;
所述建立子单元包括:
生成子单元,用于根据预先配置,所述配置包括下载权限设置,生成配置文件;
创建子单元,用于根据所述配置文件,创建资源对象单元;
配置子单元,用于通过所述资源对象单元将所述目标预设容器分配至目标物理机组。
4.根据权利要求3所述基于容器的建模数据同步装置,其特征在于,所述装置还包括:
判断单元,用于判断所述建模数据是否发送完毕;
删除子单元,用于若所述建模数据发送完毕,删除所述预设用户账户。
5.一种计算机设备,其特征在于,所述计算机设备包括存储器以及与所述存储器相连的处理器;所述存储器用于存储计算机程序;所述处理器用于运行所述计算机程序,以执行如权利要求1-2任一项所述方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1-2中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010622719.4A CN111767345B (zh) | 2020-06-30 | 2020-06-30 | 建模数据同步方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010622719.4A CN111767345B (zh) | 2020-06-30 | 2020-06-30 | 建模数据同步方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111767345A CN111767345A (zh) | 2020-10-13 |
CN111767345B true CN111767345B (zh) | 2023-10-31 |
Family
ID=72723361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010622719.4A Active CN111767345B (zh) | 2020-06-30 | 2020-06-30 | 建模数据同步方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767345B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215553B (zh) * | 2020-10-22 | 2023-01-31 | 上海烟草集团有限责任公司 | 一种物流数据库分布式控制方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107306277A (zh) * | 2016-04-19 | 2017-10-31 | 中兴通讯股份有限公司 | 一种服务器同步扩容的方法及装置 |
CN110688230A (zh) * | 2019-10-17 | 2020-01-14 | 广州文远知行科技有限公司 | 一种同步训练方法、装置、计算机设备和存储介质 |
CN111324596A (zh) * | 2020-03-06 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 数据库集群的数据迁移方法、装置及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162728A1 (en) * | 2007-01-03 | 2008-07-03 | Microsoft Corporation | Synchronization protocol for loosely coupled devices |
-
2020
- 2020-06-30 CN CN202010622719.4A patent/CN111767345B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107306277A (zh) * | 2016-04-19 | 2017-10-31 | 中兴通讯股份有限公司 | 一种服务器同步扩容的方法及装置 |
CN110688230A (zh) * | 2019-10-17 | 2020-01-14 | 广州文远知行科技有限公司 | 一种同步训练方法、装置、计算机设备和存储介质 |
CN111324596A (zh) * | 2020-03-06 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 数据库集群的数据迁移方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111767345A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109104467B (zh) | 开发环境构建方法、装置以及平台系统和存储介质 | |
CN108809722B (zh) | 一种部署Kubernetes集群的方法、装置和存储介质 | |
CN109976667B (zh) | 一种镜像管理方法、装置及系统 | |
CN113296792B (zh) | 存储方法、装置、设备、存储介质和系统 | |
CN111930521A (zh) | 用于部署应用的方法、装置、电子设备及可读存储介质 | |
US9852220B1 (en) | Distributed workflow management system | |
WO2024077885A1 (zh) | 容器集群的管理方法、装置、设备及非易失性可读存储介质 | |
CN111858045A (zh) | 一种多任务gpu资源调度方法、装置、设备及可读介质 | |
JP7161560B2 (ja) | 人工知能開発プラットフォームの管理方法及び装置、媒体 | |
CN113254156A (zh) | 一种容器组部署方法、装置、电子设备及存储介质 | |
CN111324457A (zh) | 一种gpu集群中发布推理服务的方法、装置、设备和介质 | |
CN111767345B (zh) | 建模数据同步方法、装置、计算机设备及可读存储介质 | |
JP2024501005A (ja) | コンテナクラスタのための管理方法および装置 | |
CN115037757B (zh) | 一种多集群服务管理系统 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN103425707A (zh) | 数据分析方法和装置 | |
CN116360918A (zh) | 建模数据处理方法、装置、计算机设备和存储介质 | |
CN114416131A (zh) | 一种应用升级方法、应用升级平台、电子设备及存储介质 | |
CN114090242A (zh) | 模型训练方法、装置、设备、存储介质及程序产品 | |
CN113472638A (zh) | 边缘网关控制方法及系统、装置、电子设备、存储介质 | |
CN111371606A (zh) | 一种使用rook部署ceph集群时指定monitor ip的方法 | |
CN116501449B (zh) | 云原生环境下对于容器文件的管理方法及系统 | |
CN112688980A (zh) | 资源分发方法、装置、计算机设备 | |
US11520781B2 (en) | Efficient bulk loading multiple rows or partitions for a single target table | |
CN115454450B (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 |