CN114691357A - Hdfs容器化服务系统、方法、装置、设备及存储介质 - Google Patents
Hdfs容器化服务系统、方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114691357A CN114691357A CN202210257436.3A CN202210257436A CN114691357A CN 114691357 A CN114691357 A CN 114691357A CN 202210257436 A CN202210257436 A CN 202210257436A CN 114691357 A CN114691357 A CN 114691357A
- Authority
- CN
- China
- Prior art keywords
- hdfs
- configuration file
- containerized
- storage
- instruction
- 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.)
- Granted
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Abstract
本申请公开了一种HDFS容器化服务系统、方法、装置、设备及存储介质,属于大数据处理技术领域。本申请通过接收容器化的HDFS系统创建指令,调用第一预设配置模板,生成第一配置文件,并将第一配置文件发送至存储集群,以使存储集群根据第一配置文件,在本地存储中分配指定大小的存储空间,并使用对应的存储空间创建容器化的HDFS系统,从而实现根据配置文件动态分配存储空间,并且由于使用了本地存储作为文件存储空间,进而实现提供了一个灵活高效的HDFS的容器存储服务,大大提升用户的体验。
Description
技术领域
本申请涉及大数据处理技术领域,尤其涉及一种HDFS容器化服务系统、方法、装置、设备及存储介质。
背景技术
近年来,随着计算机技术的发展,大数据运用技术在以互联网为代表的行业中得到了广泛的应用,越来越多的研究和应用领域都在大数据处理技术中得到支撑。并且在现在的发展趋势中我们可以看出,未来各行各业中,大数据运用的技术一定会给我们的生活带来革命性的影响。
而在大数据应用环境下,大数据的存储显得尤为重要,针对于各种不同场景的数据存储需求和大规模数据处理,对于数据存储的高效以及灵活性的需求也越来越大。
在传统的大数据存储中,是以分布式文件系统做HDFS存储的,而其带来的问题也突显出来,虚拟化和层叠存储系统开销大、性能不足,并且容器的容量受限,而在容器中挂载本地文件系统,又使得存储空间的生命周期的管理复杂且存储空间大小分配不灵活。因此,如何解决容器化存储空间配置不灵活是我们亟待解决的问题。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
为解决上述技术问题,本申请提出了一种分布式文件系统(HDFS)容器化服务系统、方法、装置、设备及存储介质。在该方法中,通过基于云原生的HDFS容器管理系统接收容器化的HDFS系统创建指令,调用第一预设配置模板,生成对应的第一配置文件,并将第一配置文件发送给存储集群,从而存储集群根据第一配置文件创建容器化的HDFS系统,这样使得用户可以通过配置文件快速创建容器化的HDFS系统,大大的增加了容器化存储空间配置的灵活性,从而提升了用户体验。
第一方面,提供一种HDFS容器化服务系统。该系统包括:存储集群、基于云原生的HDFS容器管理系统、容器化的HDFS系统和动态存储分配系统,所述基于云原生的HDFS容器管理系统、所述容器化的HDFS系统和所述动态存储分配系统运行在所述存储集群中,所述基于云原生的HDFS容器管理系统与所述存储集群进行数据交互,所述存储集群与所述动态存储分配系统进行数据交互;所述基于云原生的HDFS容器管理系统,用于:接收所述容器化的HDFS系统创建指令,根据所述容器化的HDFS系统创建指令调用第一预设配置模板,生成所述容器化的HDFS系统创建指令对应的第一配置文件,将所述第一配置文件发送至所述存储集群,和/或,接收所述容器化的HDFS系统修改指令,根据所述容器化的HDFS系统修改指令调用第二预设配置模板,生成所述容器化的HDFS系统修改指令对应的第二配置文件,将所述第二配置文件发送至所述存储集群,和/或,接收所述容器化的HDFS系统注销指令,根据所述容器化的HDFS系统注销指令调用第三预设配置模板,生成所述容器化的HDFS系统注销指令对应的第三配置文件;将所述第三配置文件发送至所述存储集群;所述存储集群,用于:接收所述第一配置文件,根据所述第一配置文件生成存储新建指令,将所述存储新建指令发送至所述动态存储分配系统,以使所述动态存储分配系统分配第一存储,并返回所述第一存储的路径,接收所述第一存储的路径,并根据第一配置文件修改所述容器化的HDFS系统,和/或,接收所述第二配置文件,根据所述第二配置文件生成存储修改指令,将所述存储修改指令发送至所述动态存储分配系统,以使所述动态存储分配系统分配第二存储,并返回所述第二存储的路径,接收所述第二存储的路径,并根据第二配置文件修改所述容器化的HDFS系统,和/或,接收所述第三配置文件,根据所述第三配置文件生成存储注销指令,将所述存储注销指令发送至所述动态存储分配系统,以使所述动态存储分配系统注销所述第三配置文件对应的存储;根据第三配置文件注销所述容器化的HDFS系统;所述动态存储分配系统,用于:接收所述第一配置文件,根据所述第一配置文件分配所述第一存储,和/或,接收所述第二配置文件,根据所述第二配置文件分配所述第二存储,和/或,接收所述第三配置文件,根据所述第三配置文件注销所述第三配置文件对应的存储;所述容器化的HDFS系统,用于:存储大数据处理中的数据文件。这样,用户可以通过修改预设的配置模板来灵活的修改指定存储大小的容器化的HDFS系统,同时也可以对容器化的HDFS系统进行存储空间的大小进行调整以及注销容器化的HDFS系统,不仅便于容器化HDFS系统存储空间的维护,也提升了用户体验。
根据第一方面,所述的基于云原生的HDFS容器管理系统,还用于:按照预设端口生成规则,在所述第一配置文件中添加所述容器化的HDFS系统对外访问端口。
根据第一方面,或者以上第一方面的任意一种实现方式,所述存储集群,还用于:根据所述第一配置文件,配置所述容器化的HDFS系统通信端口。
根据第一方面,或者以上第一方面的任意一种实现方式,所述存储集群,还用于:将本地磁盘挂载至所述容器化的HDFS系统中。
第二方面,提供一种HDFS容器化服务方法,应用于HDFS容器化服务系统,所述系统包括:存储集群、基于云原生的HDFS容器管理系统、容器化的HDFS系统和动态存储分配系统,所述基于云原生的HDFS容器管理系统、所述容器化的HDFS系统和所述动态存储分配系统运行在所述存储集群中,所述基于云原生的HDFS容器管理系统与所述存储集群进行数据交互,所述存储集群与所述动态存储分配系统进行数据交互;所述方法包括:接收所述容器化的HDFS系统创建指令;根据所述容器化的HDFS系统创建指令调用所述第一预设配置模板,生成所述第一配置文件;将所述第一配置文件发送至所述存储集群,以使所述存储集群根据所述第一配置文件创建所述容器化的HDFS系统。
根据第二方面,所述方法还包括:所述根据所述容器化的HDFS系统修改指令调用所述第一预设配置模板,生成所述第一配置文件之后,还包括:按照预设端口生成规则,在所述第一配置文件中添加所述容器化HDFS系统对外访问端口。
根据第二方面,或者以上第二方面的任意一种实现方式,所述方法还包括:所述将所述第一配置文件发送至所述存储集群,以使所述存储集群根据所述第一配置文件修改所述容器化的HDFS系统之后,还包括:接收所述容器化的HDFS系统注销指令;根据所述容器化的HDFS系统注销指令调用所述三预设配置模板,生成所述第三配置文件;将所述第三配置文件发送至所述存储集群,以使所述存储集群根据所述第三配置文件注销所述容器化的HDFS系统。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
此外,为实现上述目的,本申请还提出一种HDFS容器化服务装置,所述HDFS容器化服务装置包括:
指令接收模块,用于接收所述容器化的HDFS系统创建指令;
文件生成模块,用于根据所述容器化的HDFS系统创建指令调用所述第一预设配置模板,生成所述第一配置文件;
文件发送模块,用于将所述第一配置文件发送至所述存储集群,以使所述存储集群根据所述第一配置文件创建所述容器化的HDFS系统。
此外,为实现上述目的,本申请还提出一种HDFS容器化服务设备,所述HDFS容器化服务设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的HDFS容器化服务程序,所述HDFS容器化服务程序配置为实现如上文所述的HDFS容器化服务方法的步骤。
此外,为实现上述目的,本申请还提出一种存储介质,所述存储介质上存储有HDFS容器化服务程序,所述HDFS容器化服务程序被处理器执行时实现如上文所述的HDFS容器化服务方法的步骤。
附图说明
图1是本申请实施例方案涉及的硬件运行环境的HDFS容器化服务设备的结构示意图;
图2为本申请一种HDFS容器化服务系统的系统框架图;
图3为本申请一种HDFS容器化服务方法的创建流程示意图;
图4为本申请一种HDFS容器化服务方法的修改流程示意图;
图5为本申请一种HDFS容器化服务方法的注销流程示意图;
图6为本申请一种HDFS容器化服务装置的结构框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本色实施中的附图,对本申请实施例中技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通急速人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,图1为本申请实施例方案涉及的硬件运行环境的HDFS容器化服务设备结构示意图。
如图1所示,该HDFS容器化服务设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对HDFS容器化服务设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及HDFS容器化服务程序。
在图1所示的HDFS容器化服务设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本申请HDFS容器化服务设备中的处理器1001、存储器1005可以设置在HDFS容器化服务设备中,所述HDFS容器化服务设备通过处理器1001调用存储器1005中存储的HDFS容器化服务程序,并执行本申请实施例提供的HDFS容器化服务方法。
本申请实施例提供了一种HDFS容器化服务系统,参照图2,图2为本申请一种HDFS容器化服务系统的系统框架图。
本实施例中,所述HDFS容器化服务系统,包括:存储集群、基于云原生的HDFS容器管理系统、容器化的HDFS系统和动态存储分配系统,所述基于云原生的HDFS容器管理系统、所述容器化的HDFS系统和所述动态存储分配系统运行在所述存储集群中,所述基于云原生的HDFS容器管理系统与所述存储集群进行数据交互,所述存储集群与所述动态存储分配系统进行数据交互;所述基于云原生的HDFS容器管理系统,用于:接收所述容器化的HDFS系统创建指令,根据所述容器化的HDFS系统创建指令调用第一预设配置模板,生成所述容器化的HDFS系统创建指令对应的第一配置文件,将所述第一配置文件发送至所述存储集群,和/或,接收所述容器化的HDFS系统修改指令,根据所述容器化的HDFS系统修改指令调用第二预设配置模板,生成所述容器化的HDFS系统修改指令对应的第二配置文件,将所述第二配置文件发送至所述存储集群,和/或,接收所述容器化的HDFS系统注销指令,根据所述容器化的HDFS系统注销指令调用第三预设配置模板,生成所述容器化的HDFS系统注销指令对应的第三配置文件;将所述第三配置文件发送至所述存储集群;所述存储集群,用于:接收所述第一配置文件,根据所述第一配置文件生成存储新建指令,将所述存储新建指令发送至所述动态存储分配系统,以使所述动态存储分配系统分配第一存储,并返回所述第一存储的路径,接收所述第一存储的路径,并根据第一配置文件修改所述容器化的HDFS系统,和/或,接收所述第二配置文件,根据所述第二配置文件生成存储修改指令,将所述存储修改指令发送至所述动态存储分配系统,以使所述动态存储分配系统分配第二存储,并返回所述第二存储的路径,接收所述第二存储的路径,并根据第二配置文件修改所述容器化的HDFS系统,和/或,接收所述第三配置文件,根据所述第三配置文件生成存储注销指令,将所述存储注销指令发送至所述动态存储分配系统,以使所述动态存储分配系统注销所述第三配置文件对应的存储;根据第三配置文件注销所述容器化的HDFS系统;所述动态存储分配系统,用于:接收所述第一配置文件,根据所述第一配置文件分配所述第一存储,和/或,接收所述第二配置文件,根据所述第二配置文件分配所述第二存储,和/或,接收所述第三配置文件,根据所述第三配置文件注销所述第三配置文件对应的存储;所述容器化的HDFS系统,用于:存储大数据处理中的数据文件。
需要说明的是,上述HDFS容器化服务器系统的运行环境可以是以容器化集群方式部署的,其中容器引擎可以是Kubernetes、Podman等,在本实施例中以Kubernetes为例来进行说明。
可以理解的是,上述Kubernetes集群是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,可以修改多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
应理解的是,上述预设配置模板可以是标记性语言编写的一个预置文件,上述标记性语言可以是YAML、JSON或XML,本实施例对此不做限制,为了便于理解本实施例以YAML为例进行说明。
还需要说明的是,上述HDFS容器化服务系统,可以分为四个部分,具体如下:
存储集群:有单独的几台服务器,至少2台服务器组成一个存储集群,在其上部署Kubernetes集群,作为HDFS容器化服务的运行载体。
基于云原生的HDFS容器管理系统:用于管理HDFS容器集群的整个生命周期,包括配置本地磁盘挂载到容器中,配置HDFS容器集群的端口号,修改HDFS容器集群,删除HDFS容器集群。当修改HDFS容器集群时,配置HDFS本地磁盘空间大小,申请本地磁盘,采用挂载的方式将本地磁盘挂载到容器中。删除HDFS容器集群时,释放本地从盘空间。
容器化的HDFS系统:将HDFS集群封装到容器中,将HDFS的NameNode,DataNode进程在容器中运行,其中配置NameNode在HDFS容器集群的master中运行,DataNode在HDFS容器集群的worker中运行。这样就形成了一个容器化的HDFS集群服务,其具体过程包括:编写创建容器化的HDFS集群的YAML,在YAML中配置本地网络模式,配置容器中启动命令行,将HDFS集群启动起来,配置HDFS容器使用PV和PVC申请本地磁盘空间,配置HDFS容器中本地磁盘挂载的路径,配置需要申请本地磁盘空间的大小,配置HDFS端口配置策略,配置HDFS存储集群的副本数和节点数量,最终生成一个完整的YAML,提交到Kubernetes集群中,由Kubernetes调度到其节点上,生成容器化的HDFS集群。其中的HDFS的数据存储的位置就是挂载到容器中本地磁盘的路径。
需要说明的,在创建容器化的HDFS集群时,需要通过挂载的方式来使用本地磁盘。具体地,在向Kubernetes提交申请创建容器化的HDFS集群时,使用PV和PVC的方式挂载到容器中的路径,同时,配置容器化的HDFS集群的存储路径为挂载路径。在使用PV和PVC申请逻辑卷时,由本地磁盘的管理插件,在插件管理的物理卷组中申请逻辑卷,通过逻辑卷来获取存储空间,动态分配到本地的存储空间。需要申请的存储空间的大小,在创建HDFS集群时需要按需配置。
应理解的是,删除容器化的HDFS集群时,申请的逻辑卷也一同被清除,即释放了申请的磁盘空间。
可理解的是,在使用Kubernetes的宿主机的本地磁盘作为存储空间,在创建容器化的HDFS集群时,其容器与Kubernetes的节点是绑定,容器不能漂移,从而保证HDFS中存储的数据可靠性。
动态存储分配系统:是基于LVM技术的动态分配磁盘空间系统,其初始化方式为:将本地磁盘使用Linux LVM的技术配置为物理卷组VG,这样就将所有的本地磁盘形成了一个大的物理卷组,统一管理;当HDFS容器集群申请本地存储空间时,由动态存储分配系统统一管理从物理卷组中申请存储空间,实现了灵活,动态的申请和释放的本地磁盘空间的使用。例如:动态存储分配系统接收到存储集群发送的存储新建指令,指令中内容包括用户申请的存储空间,当用户申请的存储空间为10G时,动态存储分配系统从物理卷组VG中分配10G存储空间,并生成对应的访问路径;当用户申请的存储空间为20G时,动态存储分配系统从物理卷组VG中分配20G存储空间,并生成对应的访问路径。
需要说明的,使用Kubernetes节点的宿主机的本地磁盘之前,需要配置Kubernetes节点的宿主机的本地磁盘支持动态分配的能力。首先,将物理机上的磁盘进行分区,此处可1到n个分区,至少一个分区;分区之后需要修改分区类型并保存退出,接下来根据磁盘分区,创建物理卷,根据物理卷,再创建卷组。卷组就提供了一种逻辑卷的方式们可以实现动态分配磁盘空间。
应理解的,在Kubernetes所有节点上,都将本地磁盘配置成一个卷组,将所有卷组配置相同的名称,在Kubernetes基础上部署管理本地磁盘的插件,重点是,插件所管理的卷组配置为创建的卷组,这样Kubernetes所有节点上的本地磁盘将被本地磁盘统一管理起来。同时,由插件创建当有申请逻辑卷的申请时,插件将调度,分配到其中一个节点上,在该节点上的卷组上创建指定大小的逻辑卷。
可理解的,如果Kubernetes节点的宿主机本地磁盘空间不够,可以在Kubernetes节点的宿主机上增加本地磁盘,放上本地磁盘后,按照创建卷组的方式,分区,创建物理卷,然后将新的物理卷,增加到卷组中,即扩种卷组的存储容量。
还需要理解的是,上述容器化的HDFS系统创建后,为了实现容器化的HDFS系统远程访问的目的,需要为容器化的HDFS分配对应的网络端口,其实现方式为:基于原生的HDFS容器管理系统按照预设端口生成规则,在对应的配置文件中添加上述容器化的HDFS系统对外访问端口,例如:
首先,利用宿主机网络进行通信,其配置如下:
hostNetwork:true
这样容器化的HDFS系统生成后,会使用宿主机网络进行通信。
其次,配置一个端口范围,例如30000~50000的端口范围,此处端口指的是Kubernetes宿主机的端口地址。然后随机分配一个初始端口,初始端口为50的倍数,此处50可自行配置,并将初始端口保存在数据库中,在分配初始化端口时,需要遍历数据库中是否已经分配过该端口,若分配过,则重新按照50的倍数分配。在创建HDFS的YAML中,接收到了初始端口后,以自加1的方式填充所有HDFS容器集群需要对外访问的端口,其模板示例如下,{{192.168.0.1}}为初始端口:
-name:HDFS_DATANODE_PORT
value:"{{192.168.0.1+3*i-1}}"
-name:HDFS_DATANODE_HTTP_PORT
value:"{{192.168.0.1+3*i}}"
-name:HDFS_DATANODE_IPC_PORT
value:"{{192.168.0.1+3*i+1}}"
-name:HDFS_NAMENODE_HTTP_PORT
value:"{{192.168.0.1+1}}"
-name:HDFS_NAMENODE_PORT
value:"{{192.168.0.1}}"
最后将生成的配置文件提交到Kubernetes集群中,创建容器化的HDFS系统。当分配给容器化的HDFS系统的端口号,容器在启动时,会检测分配的端口号是否在宿主机上被占用,若被占用,则返回特定的错误码,例如138,当发现有138的错误码时,则重新随机分配一个初始化端口。
在具体实现中,本实施例通过在物理机上部署Kubernetes集群,存储的Kubernetes集群为HDFS容器集群的运行环境,首先,此Kubernetes集群只作为单独的存储服务的集群,而不作为计算集群,实现存算分离的理念。其次,Kubernetes集群的节点数量至少时2台以上,为了保证一个完整的Kubernetes集群既有master,也有worker,同时,为了方便本地磁盘的扩展和HDFS容器化的调度运行,建议至少2个节点。最后,Kubernetes集群给容器化的HDFS系统提供了云原生的特性,使得容器化的HDFS系统可以灵活的修改,即申请,即可用。
此外,对于另一种场景,上述基于云原生的HDFS容器管理系统接收到创建上述容器化的HDFS系统的创建指令时,参见图3,图3为本申请一种HDFS容器化服务方法的创建流程示意图;
步骤101,接收所述容器化的HDFS系统创建指令;
可以理解的是,上述创建指令可以是根据实际业务需求进行触发的,可以是由其他系统发出的,也可以是由用户手动触发的,本实施例对此不做限制。
在具体实现中,在大数据计算存储中需要将数据进行存储时,则向上述基于云原生的HDFS容器管理系统发送一个容器化的HDFS系统创建指令,上述容器化的HDFS系统创建指令中参数信息,包括:端口号、角色、存储方式、挂载路径和副本数等。
步骤102,根据所述容器化的HDFS系统创建指令调用所述第一预设配置模板,生成所述第一配置文件;
可以理解的是,上述预设配置模板可以是标记性语言编写的一个预置文件,上述标记性语言可以是YAML、JSON或XML,本实施例对此不做限制,为了便于理解本实施例以YAML为例进行说明。
应理解的是,上述预设配置模板是预先存储在上述基于云原生的HDFS容器管理系统的配置文件中的,可以是由管理员预先配置好的,也可以是第三方开发人员根据需求进行编制的。
需要说明的是,基于云原生的HDFS容器管理系统接收到上述容器化的HDFS系统创建指令后,解析上述系统创建指令中参数信息后,调用预设配置模板分步生成对应的配置信息,例如:
配置容器化的HDFS系统的端口号:
env:
-name:HDFS_DATANODE_PORT
value:"50106"
-name:HDFS_DATANODE_HTTP_PORT
value:"50107"
-name:HDFS_DATANODE_IPC_PORT
value:"50108"
-name:HDFS_NAMENODE_HTTP_PORT
value:"50104"
-name:HDFS_NAMENODE_PORT
value:"50105"
配置容器化的HDFS系统的容器的角色:
-name:HDFS_ROLE
value:"datanode"
配置容器化的HDFS系统使用本地存储以及配置挂载路径,其中路径为容器化的HDFS系统中配置文件hdfs-site.xml中的数据存储路径:
配置容器化的HDFS系统中HDFS集群的副本数:
-name:HDFS_REPLICA
value:"1"
在具体实现中,基于云原生的HDFS容器管理系统接收到容器化的HDFS系统创建指令后,解析上述创建指令中的参数信息,并调用预设的配置模板,分步生成对应的配置信息,最后将上述所有的配置信息形成一个完成的YAML文件。
步骤103,将所述第一配置文件发送至所述存储集群,以使所述存储集群根据所述第一配置文件创建所述容器化的HDFS系统。
在具体实现中,上述基于云原生的HDFS容器管理器通过调用Kubernetes API接口,将上述完成的YAML文件发送给存储Kubernetes集群中,最终由存储Kubernetes集群来创建容器化的HDFS系统,并将本地的磁盘空间挂载容器化的HDFS系统中。
在本实施例中,通过接收容器化的HDFS系统创建指令,根据容器化的HDFS系统创建指令调用预设配置模板,生成完整的配置文件,并将完整的配置文件发送至存储集群,存储集群根据完整的配置文件创建容器化的HDFS系统,并将本地的磁盘空间挂载到容器化的HDFS系统中,从而实现了根据容器化的HDFS系统创建指令灵活的创建容器化的HDFS系统,并且通过挂载本地的磁盘空间至容器化的HDFS系统中,所以容器化的HDFS系统进行数据存取时相对于传统的数据存取更加高效,从而提供了一个灵活高效的HDFS的容器存储服务,大大提升用户的体验。
此外,对于另一种应用场景,上述基于云原生的HDFS容器管理系统接收到修改上述容器化的HDFS系统的修改指令时,参见图4,图4为本申请一种HDFS容器化服务方法的修改流程示意图;
步骤201,接收所述容器化的HDFS系统修改指令;
可以理解的是,上述修改指令可以是根据实际业务需求进行触发的,可以是由其他系统发出的,也可以是由用户手动触发的,本实施例对此不做限制。
在具体实现中,在大数据计算存储中需要将数据进行存储时,则向上述基于云原生的HDFS容器管理系统发送一个容器化的HDFS系统修改指令,上述容器化的HDFS系统修改指令中参数信息,可以包括:端口号、角色、存储方式、挂载路径和副本数等。
步骤202,根据所述容器化的HDFS系统修改指令调用所述第二预设配置模板,生成所述第二配置文件;
可以理解的是,上述预设配置模板可以是标记性语言编写的一个预置文件,上述标记性语言可以是YAML、JSON或XML,本实施例对此不做限制,为了便于理解本实施例以YAML为例进行说明。
应理解的是,上述预设配置模板是预先存储在上述基于云原生的HDFS容器管理系统的配置文件中的,可以是由管理员预先配置好的,也可以是第三方开发人员根据需求进行编制的。
在具体实现中,基于云原生的HDFS容器管理系统接收到容器化的HDFS系统修改指令后,解析上述修改指令中的参数信息,并调用预设的配置模板,分步生成对应的配置信息,最后将上述所有的配置信息形成一个完成的YAML文件。
步骤203,将所述第二配置文件发送至所述存储集群,以使所述存储集群根据所述第二配置文件修改所述容器化的HDFS系统。
在具体实现中,上述基于云原生的HDFS容器管理器通过调用Kubernetes API接口,将上述完成的YAML文件发送给存储Kubernetes集群中,最终由存储Kubernetes集群来修改容器化的HDFS系统,并将本地的磁盘空间挂载容器化的HDFS系统中。
在本实施例中,通过接收容器化的HDFS系统修改指令,根据容器化的HDFS系统修改指令调用预设配置模板,生成完整的配置文件,并将完整的配置文件发送至存储集群,存储集群根据完整的配置文件修改容器化的HDFS系统,并将本地的磁盘空间挂载到容器化的HDFS系统中,从而实现了根据容器化的HDFS系统修改指令灵活的修改容器化的HDFS系统,并且通过挂载本地的磁盘空间至容器化的HDFS系统中,所以容器化的HDFS系统进行数据存取时相对于传统的数据存取更加高效,从而提供了一个灵活高效的HDFS的容器存储服务,大大提升用户的体验。
此外,对于另一种应用场景,上述基于云原生的HDFS容器管理系统接收到注销上述容器化的HDFS系统的注销指令时,参见图5,图5为本申请一种HDFS容器化服务方法的注销流程示意图;
步骤301,接收所述容器化的HDFS系统注销指令;
可以理解的是,上述注销指令可以是根据实际业务需求进行触发的,可以是由其他系统发出的,也可以是由用户手动触发的,本实施例对此不做限制。
在具体实现中,在大数据计算存储中需要将数据进行存储时,则向上述基于云原生的HDFS容器管理系统发送一个容器化的HDFS系统注销指令,上述容器化的HDFS系统注销指令中参数信息,可以包括:端口号、角色、存储方式、挂载路径和副本数等。
步骤302,根据所述容器化的HDFS系统注销指令调用所述三预设配置模板,生成所述第三配置文件;
以理解的是,上述预设配置模板可以是标记性语言编写的一个预置文件,上述标记性语言可以是YAML、JSON或XML,本实施例对此不做限制,为了便于理解本实施例以YAML为例进行说明。
应理解的是,上述预设配置模板是预先存储在上述基于云原生的HDFS容器管理系统的配置文件中的,可以是由管理员预先配置好的,也可以是第三方开发人员根据需求进行编制的。
在具体实现中,基于云原生的HDFS容器管理系统接收到容器化的HDFS系统注销指令后,解析上述注销指令中的参数信息,并调用预设的配置模板,分步生成对应的配置信息,最后将上述所有的配置信息形成一个完成的YAML文件。
步骤303,将所述第三配置文件发送至所述存储集群,以使所述存储集群根据所述第三配置文件注销所述容器化的HDFS系统。
在具体实现中,上述基于云原生的HDFS容器管理器通过调用Kubernetes API接口,将上述完成的YAML文件发送给存储Kubernetes集群中,最终由存储Kubernetes集群来注销容器化的HDFS系统,并将挂载容器化的HDFS系统中本地的磁盘空间进行释放。
在本实施例中,通过接收容器化的HDFS系统注销指令,根据容器化的HDFS系统注销指令调用预设配置模板,生成完整的配置文件,并将完整的配置文件发送至存储集群,存储集群根据完整的配置文件注销容器化的HDFS系统,并将本地的磁盘空间挂载到容器化的HDFS系统中,从而实现了根据容器化的HDFS系统注销指令灵活的注销容器化的HDFS系统,并且将挂载在容器化的HDFS系统中本地的磁盘空间进行释放,从而提供了一个灵活的HDFS的容器存储服务,大大提升用户的体验。
此外,本申请实施例还提出一种存储介质,所述存储介质上存储有HDFS容器化服务程序,所述HDFS容器化服务程序被处理器执行时实现如上文所述的HDFS容器化服务方法的步骤。
参照图6,图6为本申请HDFS容器化服务装置的结构框图。
如图6所示,本申请实施例提出的HDFS容器化服务装置包括:
指令接收模块,用于接收所述容器化的HDFS系统创建指令;
可以理解的是,上述修改指令可以是根据实际业务需求进行触发的,可以是由其他系统发出的,也可以是由用户手动触发的,本实施例对此不做限制。
在具体实现中,在大数据计算存储中需要将数据进行存储时,则向上述基于云原生的HDFS容器管理系统发送一个容器化的HDFS系统修改指令,上述容器化的HDFS系统修改指令中参数信息,包括:端口号、角色、存储方式、挂载路径和副本数等。
文件生成模块,用于根据所述容器化的HDFS系统创建指令调用所述第一预设配置模板,生成所述第一配置文件;
可以理解的是,上述预设配置模板可以是标记性语言编写的一个预置文件,上述标记性语言可以是YAML、JSON或XML,本实施例对此不做限制,为了便于理解本实施例以YAML为例进行说明。
应理解的是,上述预设配置模板是预先存储在上述基于云原生的HDFS容器管理系统的配置文件中的,可以是由管理员预先配置好的,也可以是第三方开发人员根据需求进行编制的。
需要说明的是,基于云原生的HDFS容器管理系统接收到上述容器化的HDFS系统修改指令后,解析上述系统修改指令中参数信息后,调用预设配置模板分步生成对应的配置信息,例如:
配置容器化的HDFS系统的端口号:
env:
-name:HDFS_DATANODE_PORT
value:"50106"
-name:HDFS_DATANODE_HTTP_PORT
value:"50107"
-name:HDFS_DATANODE_IPC_PORT
value:"50108"
-name:HDFS_NAMENODE_HTTP_PORT
value:"50104"
-name:HDFS_NAMENODE_PORT
value:"50105"
配置容器化的HDFS系统的容器的角色:
-name:HDFS_ROLE
value:"datanode"
配置容器化的HDFS系统使用本地存储以及配置挂载路径,其中路径为容器化的HDFS系统中配置文件hdfs-site.xml中的数据存储路径:
配置容器化的HDFS系统中HDFS集群的副本数:
-name:HDFS_REPLICA
value:"1"
在具体实现中,基于云原生的HDFS容器管理系统接收到容器化的HDFS系统修改指令后,解析上述修改指令中的参数信息,并调用预设的配置模板,分步生成对应的配置信息,最后将上述所有的配置信息形成一个完成的YAML文件。
文件发送模块,用于将所述第一配置文件发送至所述存储集群,以使所述存储集群根据所述第一配置文件修改所述容器化的HDFS系统。
在具体实现中,上述基于云原生的HDFS容器管理器通过调用Kubernetes API接口,将上述完成的YAML文件发送给存储Kubernetes集群中,最终由存储Kubernetes集群来修改容器化的HDFS系统,并将本地的磁盘空间挂载容器化的HDFS系统中。
在本实施例中,通过接收容器化的HDFS系统修改指令,根据容器化的HDFS系统修改指令调用预设配置模板,生成完整的配置文件,并将完整的配置文件发送至存储集群,存储集群根据完整的配置文件修改容器化的HDFS系统,并将本地的磁盘空间挂载到容器化的HDFS系统中,从而实现了根据容器化的HDFS系统修改指令灵活的修改容器化的HDFS系统,并且通过挂载本地的磁盘空间至容器化的HDFS系统中,所以容器化的HDFS系统进行数据存取时相对于传统的数据存取更加高效,从而提供了一个灵活高效的HDFS的容器存储服务,大大提升用户的体验。
应当理解的是,以上仅为举例说明,对本申请的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本申请对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本申请的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的HDFS容器化服务方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种HDFS容器化服务系统,其特征在于,所述HDFS容器化服务系统,包括:存储集群、基于云原生的HDFS容器管理系统、容器化的HDFS系统和动态存储分配系统,所述基于云原生的HDFS容器管理系统、所述容器化的HDFS系统和所述动态存储分配系统运行在所述存储集群中,所述基于云原生的HDFS容器管理系统与所述存储集群进行数据交互,所述存储集群与所述动态存储分配系统进行数据交互;
所述基于云原生的HDFS容器管理系统,用于:
接收所述容器化的HDFS系统创建指令,
根据所述容器化的HDFS系统创建指令调用第一预设配置模板,生成所述容器化的HDFS系统创建指令对应的第一配置文件,
将所述第一配置文件发送至所述存储集群,
和/或,
接收所述容器化的HDFS系统修改指令,
根据所述容器化的HDFS系统修改指令调用第二预设配置模板,生成所述容器化的HDFS系统修改指令对应的第二配置文件,
将所述第二配置文件发送至所述存储集群,
和/或,
接收所述容器化的HDFS系统注销指令,
根据所述容器化的HDFS系统注销指令调用第三预设配置模板,生成所述容器化的HDFS系统注销指令对应的第三配置文件;
将所述第三配置文件发送至所述存储集群;
所述存储集群,用于:
接收所述第一配置文件,
根据所述第一配置文件生成存储新建指令,将所述存储新建指令发送至所述动态存储分配系统,以使所述动态存储分配系统分配第一存储,并返回所述第一存储的路径,
接收所述第一存储的路径,并根据第一配置文件修改所述容器化的HDFS系统,
和/或,
接收所述第二配置文件,
根据所述第二配置文件生成存储修改指令,将所述存储修改指令发送至所述动态存储分配系统,以使所述动态存储分配系统分配第二存储,并返回所述第二存储的路径,
接收所述第二存储的路径,并根据第二配置文件修改所述容器化的HDFS系统,
和/或,
接收所述第三配置文件,
根据所述第三配置文件生成存储注销指令,将所述存储注销指令发送至所述动态存储分配系统,以使所述动态存储分配系统注销所述第三配置文件对应的存储;
根据第三配置文件注销所述容器化的HDFS系统;
所述动态存储分配系统,用于:
接收所述第一配置文件,
根据所述第一配置文件分配所述第一存储,
和/或,
接收所述第二配置文件,
根据所述第二配置文件分配所述第二存储,
和/或,
接收所述第三配置文件,
根据所述第三配置文件注销所述第三配置文件对应的存储;
所述容器化的HDFS系统,用于:
存储大数据处理中的数据文件。
2.根据权利要求1所述的系统,其特征在于,所述基于云原生的HDFS容器管理系统,还用于:
按照预设端口生成规则,在所述第一配置文件中添加所述容器化的HDFS系统对外访问端口。
3.根据权利要求2所述的系统,其特征在于,所述存储集群,还用于:
根据所述第一配置文件,配置所述容器化的HDFS系统通信端口。
4.根据权利要求3所述的系统,其特征在于,所述存储集群,还用于:
将本地磁盘挂载至所述容器化的HDFS系统中。
5.一种HDFS容器化服务方法,其特征在于,应用于如权利要求1所述的HDFS容器化服务系统,所述方法,包括:
接收所述容器化的HDFS系统创建指令;
根据所述容器化的HDFS系统创建指令调用所述第一预设配置模板,生成所述第一配置文件;
将所述第一配置文件发送至所述存储集群,以使所述存储集群根据所述第一配置文件创建所述容器化的HDFS系统。
6.根据权利要求5所述的HDFS容器化服务方法,其特征在于,所述根据所述容器化的HDFS系统修改指令调用所述第一预设配置模板,生成所述第一配置文件之后,还包括:
按照预设端口生成规则,在所述第一配置文件中添加所述容器化HDFS系统对外访问端口。
7.根据权利要求5所述的HDFS容器化服务方法,其特征在于,所述将所述第一配置文件发送至所述存储集群,以使所述存储集群根据所述第一配置文件修改所述容器化的HDFS系统之后,还包括:
接收所述容器化的HDFS系统注销指令;
根据所述容器化的HDFS系统注销指令调用所述三预设配置模板,生成所述第三配置文件;
将所述第三配置文件发送至所述存储集群,以使所述存储集群根据所述第三配置文件注销所述容器化的HDFS系统。
8.一种HDFS容器化服务装置,其特征在于,所述HDFS容器化服务装置包括:
指令接收模块,用于接收所述容器化的HDFS系统创建指令;
文件生成模块,用于根据所述容器化的HDFS系统创建指令调用所述第一预设配置模板,生成所述第一配置文件;
文件发送模块,用于将所述第一配置文件发送至所述存储集群,以使所述存储集群根据所述第一配置文件修改所述容器化的HDFS系统。
9.一种HDFS容器化服务设备,其特征在于,所述HDFS容器化服务设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的HDFS容器化服务程序,所述HDFS容器化服务程序配置为实现如权利要求5至7中任一项所述的HDFS容器化服务方法。
10.一种存储介质,其特征在于,所述存储介质上存储有HDFS容器化服务程序,所述HDFS容器化服务程序被处理器执行时实现如权利要求5至7任一项所述的HDFS容器化服务方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210257436.3A CN114691357B (zh) | 2022-03-16 | 2022-03-16 | Hdfs容器化服务系统、方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210257436.3A CN114691357B (zh) | 2022-03-16 | 2022-03-16 | Hdfs容器化服务系统、方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114691357A true CN114691357A (zh) | 2022-07-01 |
CN114691357B CN114691357B (zh) | 2022-12-27 |
Family
ID=82138194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210257436.3A Active CN114691357B (zh) | 2022-03-16 | 2022-03-16 | Hdfs容器化服务系统、方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691357B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317610A (zh) * | 2014-10-11 | 2015-01-28 | 福建新大陆软件工程有限公司 | 一种hadoop平台自动安装部署的方法及装置 |
CN106681956A (zh) * | 2016-12-27 | 2017-05-17 | 北京锐安科技有限公司 | 一种大规模计算机集群的操作方法及装置 |
CN107193504A (zh) * | 2017-06-02 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种基于Kubernetes的自动化分配和创建应用存储的方法和系统 |
CN109165206A (zh) * | 2018-08-27 | 2019-01-08 | 中科曙光国际信息产业有限公司 | 基于容器的hdfs高可用实现方法 |
CN110362381A (zh) * | 2019-06-21 | 2019-10-22 | 深圳市汇川技术股份有限公司 | Hdfs集群高可用部署方法、系统、设备及存储介质 |
CN111290826A (zh) * | 2018-12-06 | 2020-06-16 | 北京京东尚科信息技术有限公司 | 分布式文件系统、计算机系统和介质 |
US10841152B1 (en) * | 2017-12-18 | 2020-11-17 | Pivotal Software, Inc. | On-demand cluster creation and management |
US20210334235A1 (en) * | 2020-04-23 | 2021-10-28 | Netapp, Inc. | Systems and methods for configuring, creating, and modifying parallel file systems |
US20210382741A1 (en) * | 2020-06-05 | 2021-12-09 | Vmware, Inc. | Paravirtual storage layer for a container orchestrator in a virtualized computing system |
-
2022
- 2022-03-16 CN CN202210257436.3A patent/CN114691357B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317610A (zh) * | 2014-10-11 | 2015-01-28 | 福建新大陆软件工程有限公司 | 一种hadoop平台自动安装部署的方法及装置 |
CN106681956A (zh) * | 2016-12-27 | 2017-05-17 | 北京锐安科技有限公司 | 一种大规模计算机集群的操作方法及装置 |
CN107193504A (zh) * | 2017-06-02 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种基于Kubernetes的自动化分配和创建应用存储的方法和系统 |
US10841152B1 (en) * | 2017-12-18 | 2020-11-17 | Pivotal Software, Inc. | On-demand cluster creation and management |
CN109165206A (zh) * | 2018-08-27 | 2019-01-08 | 中科曙光国际信息产业有限公司 | 基于容器的hdfs高可用实现方法 |
CN111290826A (zh) * | 2018-12-06 | 2020-06-16 | 北京京东尚科信息技术有限公司 | 分布式文件系统、计算机系统和介质 |
CN110362381A (zh) * | 2019-06-21 | 2019-10-22 | 深圳市汇川技术股份有限公司 | Hdfs集群高可用部署方法、系统、设备及存储介质 |
US20210334235A1 (en) * | 2020-04-23 | 2021-10-28 | Netapp, Inc. | Systems and methods for configuring, creating, and modifying parallel file systems |
US20210382741A1 (en) * | 2020-06-05 | 2021-12-09 | Vmware, Inc. | Paravirtual storage layer for a container orchestrator in a virtualized computing system |
Also Published As
Publication number | Publication date |
---|---|
CN114691357B (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11405274B2 (en) | Managing virtual network functions | |
CA2990252C (en) | Systems and methods for blueprint-based cloud management | |
US10303450B2 (en) | Systems and methods for a policy-driven orchestration of deployment of distributed applications | |
CN107733704B (zh) | 一种基于虚拟化和容器技术的勘探开发云的系统和方法 | |
US10540162B2 (en) | Generating service images having scripts for the deployment of services | |
JP2020096357A (ja) | コンテナオーケストレーションサービスを使用した動的ルーティング | |
CN112202615B (zh) | 一种多cni协同工作系统与方法 | |
CN104813614A (zh) | 用于iaas的管理的异步框架 | |
CN108073423A (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
CN111124589A (zh) | 一种服务发现系统、方法、装置及设备 | |
CN111857951A (zh) | 容器化部署平台及部署方法 | |
CN112035244A (zh) | 在多租户环境中虚拟节点集群的部署 | |
CN115086166A (zh) | 计算系统、容器网络配置方法及存储介质 | |
CN108062239A (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
CN112698930A (zh) | 一种获取服务器标识的方法、装置、设备及介质 | |
CN114691357B (zh) | Hdfs容器化服务系统、方法、装置、设备及存储介质 | |
CN115048060B (zh) | 一种存储管理方法、装置、电子设备及存储介质 | |
US10884774B2 (en) | Virtual node deployments of cluster-based applications modified to exchange reference to file systems | |
WO2017125161A1 (en) | Resource allocation | |
CN111338691A (zh) | 一种基于k8s的容器云平台并支持实现微服务与devops系统 | |
CN115185700B (zh) | 一种高集成单进程的容器管理方法 | |
US20230385121A1 (en) | Techniques for cloud agnostic discovery of clusters of a containerized application orchestration infrastructure | |
JP7336534B2 (ja) | 作業アイテムのスキル決定のためのシステムおよび方法 | |
CN117278635B (zh) | 工业靶场的调度方法和工业靶场系统 | |
CN116954815A (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 |