基于Kubernetes容器编排软件提交大数据计算作业的方法及
装置
技术领域
本发明属于大数据作业领域,尤其是涉及一种基于Kubernetes容器编排软件提交大数据计算作业的方法及装置。
背景技术
随着互联网行业的蓬勃发展,公司的数据规模呈现爆发式的增长,由于庞大的数据规模,使得大数据平台成为众多公司分析处理海量数据的有力工具。现有大数据平台提交大数据计算作业采用先选择安装大数据平台客户端程序的主机,然后在命令行输入执行大数据计算作业命令提交大数据计算作业的方式。
但是随着大数据计算作业数量大幅增多,使得提交大数据计算作业人员不能快速找到曾经提交过的大数据计算作业进行重复提交,使得提交相同大数据计算作业的效率低下。另外随着提交大数据计算作业的主机数量大幅增多,且不同主机的CPU、内存使用率差异很大。怎样在大数据作业过程中快速提交相同的大数据计算作业显得尤为重要。
发明内容
本发明要解决的技术问题是怎样在大数据作业过程中快速提交相同的大数据计算作业,提出了一种基于Kubernetes容器编排软件提交大数据计算作业的方法及装置。
为解决上述技术问题,本发明所采用的技术方案是:
一种基于Kubernetes容器编排软件提交大数据计算作业的方法,包括以下步骤:
步骤1:构建封装了大数据平台客户端程序的容器镜像文件,并将所述容器镜像保存到容器镜像仓库,得到容器镜像的位置路径;
步骤2:在Kubernetes容器编排软件中分别创建大数据源持久卷和大数据算法持久卷,并将所述大数据源持久卷的路径键指定为拟提交的大数据作业任务的大数据源的位置路径,将所述大数据算法持久卷的路径指定为拟提交的大数据作业任务的大数据算法的位置路径;
步骤3:在Kubernetes容器编排软件中分别创建大数据源持久卷声明和大数据算法持久卷声明,将所述大数据源持久卷声明的卷名称键与所述大数据源持久卷的卷名称绑定,将所述大数据算法持久卷声明的卷名称键与所述大数据算法的卷名称绑定;
步骤4:根据所述容器镜像的位置路径、所述大数据源持久卷声明以及大数据算法持久卷声明编辑Kubernetes容器编排软件中的Job控制器资源配置信息;
步骤5:判断拟提交的大数据作业任务是否为初次提交,若是,将所述Job控制器资源配置信息进行存储,根据所述Job控制器资源配置信息在Kubernetes容器编排软件中创建Job控制器资源,并将所述Job控制器资源所包含的Pod实例调度到主机上运行;若否,从存储的Job控制器资源配置信息库中找出准备提交的Job控制器资源配置信息,转步骤6;
步骤6:删除同一作业上次提交创建的Kubernetes容器编排软件中的Job控制器资源,在Kubernetes容器编排软件中再次创建Job控制器资源,将所述Job控制器资源包含的Pod实例调度到主机上运行。
进一步地,步骤4中将所述Job控制器资源配置信息进行存储的方法是将所述Job控制器资源配置信息存储进数据库或文件系统中。
进一步地,步骤4中所述Job控制器资源配置信息包括:
镜像键为所述容器镜像的位置路径;
命令键为执行大数据平台计算作业命令;
存储卷键为所述大数据源持久卷声明和大数据算法持久卷声明。
进一步地,步骤6中,所述主机为最优主机,所述最优主机为Kubernete容器编排软件的调度器组件根据集群中主机资源使用情况,优选出最适合的主机运行Pod实例。
进一步地,所述最优主机的选择方法是:选择CPU、内存使用率最低的主机作为最优主机。
进一步地,判断拟提交的大数据作业任务是否为初次提交的判断方法是:所述Job控制器资源配置信息是否在存储的Job控制器资源配置信息库中。
本发明还提供了一种基于Kubernetes容器编排软件提交大数据计算作业的装置,包括以下模块:
容器镜像位置路径获取模块:用于构建封装了大数据平台客户端程序的容器镜像文件,并将所述容器镜像保存到容器镜像仓库,得到容器镜像的位置路径;
大数据源及算法持久卷构建模块:用于在Kubernetes容器编排软件中分别创建大数据源持久卷和大数据算法持久卷,并将所述大数据源持久卷的路径键指定为拟提交的大数据作业任务的大数据源位置路径,将所述大数据算法持久卷的路径指定为拟提交的大数据作业任务的大数据算法位置路径;
大数据源及算法持久卷声明模块:用于在Kubernetes容器编排软件中分别创建大数据源持久卷声明和大数据算法持久卷声明,将所述大数据源持久卷声明的卷名称键与所述大数据源持久卷的卷名称绑定,将所述大数据算法持久卷声明的卷名称键与所述大数据算法的卷名称绑定;
Job控制器资源信息配置模块:用于根据所述容器镜像的位置路径、所述大数据源持久卷声明以及大数据算法持久卷声明编辑Kubernetes容器编排软件中的Job控制器资源配置信息,将所述Job控制器资源配置信息进行存储;
初次提交判断及运行模块:用于判断所提交的大数据作业任务是否为初次提交,若是,则根据所述Job控制器资源配置信息在Kubernetes容器编排软件中创建Job控制器资源,并将所述Job控制器资源所包含的Pod实例调度到主机上运行,若否,则从存储的Job控制器资源配置信息中找出准备提交的Job控制器资源配置信息,删除同一作业上次提交创建的Kubernetes容器编排软件中的Job控制器资源,在Kubernetes容器编排软件中再次创建Job控制器资源,将所述Job控制器资源包含的Pod实例调度到主机上运行。
采用上述技术方案,本发明具有如下有益效果:
本发明提供的一种基于Kubernetes容器编排软件提交大数据计算作业的方法及装置,通过将Job控制器资源配置信息存储起来,在再次对提交过的大数据计算作业进行提交时,只需要找到原来提交时的Job控制器资源配置信息,就可以执行大数据平台的计算作业命令,当有大量的作业需要再次提交时,可快速的选择已经提交过的大数据作业进行提交,节省了在命令行输入大量的执行大数据计算作业命令的时间,提升了大数据计算作业重复提交的效率。
附图说明
图1为本发明系统流程图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明一种基于Kubernetes容器编排软件提交大数据计算作业的方法的具体实施例,包括以下步骤:
步骤1:构建封装了大数据平台客户端程序的容器镜像,并将所述容器镜像保存到容器镜像仓库,得到容器镜像的位置路径。
本实施例中,大数据平台包括Spark、Hadoop等大数据平台。容器镜像为容器管理软件使用的镜像,容器管理软件包括Docker等容器管理软件。通过容器管理软件提供的方法,把大数据平台客户端程序封装到容器镜像中。构建容器镜像方法包括Dockerfile等。容器镜像仓库为存储容器镜像的存储库,包括Docker Registry、Harbor等容器镜像仓库。通过容器管理软件提供的方法,保存封装了大数据平台客户端程序的容器镜像到容器镜像仓库,方法包括:执行命令docker push等。
步骤2:在Kubernetes容器编排软件中分别创建大数据源持久卷和大数据算法持久卷,并将所述大数据源持久卷的路径键指定为拟提交的大数据作业任务的大数据源的位置路径,将所述大数据算法持久卷的路径指定为拟提交的大数据作业任务的大数据算法的位置路径。本实施例中,大数据数据源路径为大数据平台进行大数据计算使用的数据所存储的位置,大数据算法路径为大数据平台进行大数据计算使用的算法所存储的位置。在Kubernetes容器编排软件中创建PersistentVolume资源,指定PersistentVolume资源的路径配置为大数据数据源路径、大数据算法路径。大数据数据源路径、大数据算法路径可以分别创建PersistentVolume资源,也可以共用同一个路径创建一个PersistentVolume资源。
步骤3:在Kubernetes容器编排软件中分别创建大数据源持久卷声明和大数据算法持久卷声明,将所述大数据源持久卷声明的卷名称键与所述大数据源持久卷的卷名称绑定,将所述大数据算法持久卷声明的卷名称键与所述大数据算法的卷名称绑定。
步骤4:根据所述容器镜像的位置路径、所述大数据源持久卷声明以及大数据算法持久卷声明编辑Kubernetes容器编排软件中的Job控制器资源配置信息。本实施例中Job控制器资源配置信息中指定镜像键为封装大数据平台客户端程序的容器镜像的位置路径;命令键为执行大数据平台计算作业命令;存储卷键为所述大数据源持久卷声明和大数据算法持久卷声明。本实施例中,将执行大数据平台计算作业命令作为命令键写在Job控制器资源配置信息中,当拟提交的大数据作业任务不是初次提交的,只要从Job控制器资源配置信息找到存储的配置信息,就可以再次提交大数据作业任务,不需要在命令行中重复敲入一遍命令,对于大量的大数据作业需要重复提交时,使用保存的配置信息就会节省很多时间。
步骤5:判断拟提交的大数据作业任务是否为初次提交,若是,将所述Job控制器资源配置信息进行存储,根据所述Job控制器资源配置信息在Kubernetes容器编排软件中创建Job控制器资源,并将所述Job控制器资源所包含的Pod实例调度到主机上运行,若否,从存储的Job控制器资源配置信息库中找出准备提交的Job控制器资源配置信息,转步骤6。本实施例中,判断拟提交的大数据作业任务是否为初次提交的判断方法是:所述Job控制器资源配置信息是否在存储的Job控制器资源配置信息库中。存储的Job控制器资源配置信息库为:数据库、文件系统等。数据库和文件系统都是便于通过搜索指令进行查询的系统,在重复提交大数据作业时,通过历史Job控制器资源配置信息创建Job控制器资源,节省了时间,提升了重复作业的效率。本实施例中,根据搜索出的Job控制器资源配置信息在Kubernete容器编排软件中创建Job控制器资源的方法包括:kubectl apply等。
步骤6:删除同一作业上次提交创建的Kubernetes容器编排软件中的Job控制器资源,在Kubernetes容器编排软件中再次创建Job控制器资源,将所述Job控制器资源包含的Pod实例调度到主机上运行。本实施例中,Job控制器资源所包含的Pod资源由Kubernete容器编排软件的调度器组件根据集群中主机资源使用情况,将Pod调度到最优的主机之上运行,最优主机为Kubernete容器编排软件的调度器组件根据集群中主机资源使用情况,优选出最适合的主机运行Pod实例。本实施例中,最优主机的选择方法是:选择CPU、内存使用率最低的主机作为最优主机。在运行上述Pod时,执行Job控制器资源配置信息的命令键指定的执行大数据平台计算作业命令,从而实现大数据计算作业的提交。
本实施例中,在找出准备提交的Job控制器资源配置信息之前,删除Kubernetes容器编排软件中的Job控制器资源。然后在存储系统中,通过存储系统提供的搜索命令,搜索出准备提交的Job控制器资源配置信息,在Kubernete容器编排软件中创建Job控制器资源,运行Job控制器包含的Pod时,执行Job控制器资源配置信息的命令键指定的执行Hadoop大数据平台计算作业命令,实现Hadoop大数据计算作业的重复提交。
本发明还提供了一种基于Kubernetes容器编排软件提交大数据计算作业的装置,包括以下模块:
容器镜像位置路径获取模块:用于构建封装了大数据平台客户端程序的容器镜像文件,并将所述容器镜像保存到容器镜像仓库,得到容器镜像的位置路径;
大数据源及算法持久卷构建模块:用于在Kubernetes容器编排软件中分别创建大数据源持久卷和大数据算法持久卷,并将所述大数据源持久卷的路径键指定为拟提交的大数据作业任务的大数据源位置路径,将所述大数据算法持久卷的路径指定为拟提交的大数据作业任务的大数据算法位置路径;
大数据源及算法持久卷声明模块:用于在Kubernetes容器编排软件中分别创建大数据源持久卷声明和大数据算法持久卷声明,将所述大数据源持久卷声明的卷名称键与所述大数据源持久卷的卷名称绑定,将所述大数据算法持久卷声明的卷名称键与所述大数据算法的卷名称绑定;
Job控制器资源信息配置模块:用于根据所述容器镜像的位置路径、所述大数据源持久卷声明以及大数据算法持久卷声明编辑Kubernetes容器编排软件中的Job控制器资源配置信息,将所述Job控制器资源配置信息进行存储;
初次提交判断及运行模块:用于判断所提交的大数据作业任务是否为初次提交,若是,则根据所述Job控制器资源配置信息在Kubernetes容器编排软件中创建Job控制器资源,并将所述Job控制器资源所包含的Pod实例调度到主机上运行,若否,则从存储的Job控制器资源配置信息中找出准备提交的Job控制器资源配置信息,在Kubernetes容器编排软件中再次创建Job控制器资源,将所述Job控制器资源包含的Pod实例调度到主机上运行。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。