一种遥感图像处理Docker集群的condor任务映射方法与流程

文档序号:17397434发布日期:2019-04-13 00:56阅读:179来源:国知局
本发明涉及一种面向遥感图像处理docker集群的condor任务映射,属于云计算领域。
背景技术
::docker可以将遥感专业软件和遥感图像处理算法以及依赖工具打包到一个可移植的容器中,实现docker集群的快速启动以及docker的便捷迁移。docker与虚拟机相比,其显著特点是启动快,资源占用小,能够在一个物理机或虚拟机上启动多个docker容器,将多个遥感图像处理算法同时运行在同一个物理机或虚拟机上,可以轻松的实现同一个物理节点上资源隔离地并行运行多个遥感图像处理任务,极大程度的利用了物理机的资源。然而,当遥感用户不停将大量的遥感算法及其运行环境打包到docker容器中时,导致用户采用手工启动不同的docker容器执行成百上千甚至更多的遥感任务时,手工管理和配置几十台甚至几百台计算节点上几千个docker镜像名与计算节点之间的对应关系,对他们来说是不可以接受的,因而他们需要一个工具去自动化管理计算节点和容器,并快速将他们的需求可视化映射到不同的docker容器中去执行。condor集群软件能实现对分布式计算资源的自动化管理,并且它能使用classad语言去描述condor集群中任务的提交,因此我们可以将遥感用户的任务通过开发可视化工具,自动映射到condorclassad语言,实现对docker中遥感算法的调用,使得遥感用户能便捷快速使用docker集群去处理遥感图像。技术实现要素:本发明为克服上述现有技术所述的至少一种缺陷,提供一种遥感图像处理docker集群的condor任务映射方法,提高了分布式环境下遥感图像处理节点的资源利用率,同时采用容器的方式,使得多个遥感任务可以在同一台物理机上运行。为解决上述技术问题,本发明采用的技术方案是:一种遥感图像处理docker集群的condor任务映射方法,其特征在于,包括有以下步骤:s1:进行condor集群构建;构建出物理机的condor集群,在每个物理机安装docker-engine,构建使用不同docker容器作为job调度的condor集群环境;s2:进行镜像元数据存储;通过镜像元数据存储记录docker镜像的元数据;s3:进行docker部署信息存储;记录在物理机上存储的docker镜像名,并在mysql中存储该物理机的ip地址信息与该物理机上存储的镜像名;s4:进行任务提交文件生成向导;根据condorclassad任务描述方法,以及mysql中记录的信息,提供可视化页面,用户通过可视化页面进行自定义操作。本发明的目的是将condor集群与docker技术应用于遥感图像处理中。在整个处理过程中,节点的管理与任务的调度是通过condor来实现,docker与condor及任务的的关联是通过在classad中,用户需要写一个任务提交描述文件,使用dockeruniverse模式在一个执行主机上运行docker容器上的遥感任务来实现的。但随着遥感处理算法的增加,任务提交描述文件达到成百上千时,记住每一个镜像中封装的遥感软件、算法、执行路径以及容器执行的命令,对用户来说是不可接受的。因而需要构建一个可视化向导页面,引导用户快速生成出调度所需的任务提交描述文件,驱动不同的遥感算法在condor中协同执行。因而需要设计一种设计数据库表记录镜像名中被封装的遥感软件、算法、执行路径、执行命令信息,同时记录用户给出的镜像中遥感算法执行所需参数,以此做为后续启动docker镜像执行遥感任务的基本描述信息。此外,在前端页面设计一个任务提交描述文件自动生成向导,该向导从数据库中分别读出镜像名,遥感软件、算法、执行路径、执行命令信息、执行参数,然后让用户选择是否传输文件,选择什么时候传输文件,填写处理结果输出路径、错误存放路径、日志存放路径、待处理数据存放路径这些信息,即可根据这些信息自动映射出遥感任务提交描述文件,实现遥感任务在condor集群docker中执行。本申请中,实现面向遥感图像处理docker集群的任务映射,具体方法为condor集群构建、镜像元数据存储、docker部署信息存储和任务提交文件生成向导。为了实现condor集群为:进行condor集群构建;构建出物理机的condor集群,在每个物理机安装docker-engine,构建使用不同docker容器作为job调度的condor集群环境。镜像元数据存储通过镜像元数据存储记录docker镜像的元数据为记录遥感图像处理docker镜像文件,包括所打包的操作系统、遥感专用软件、遥感算法、jdk文件及配置的环境信息、entrypoin/cmd信息、executable/param信息、run、volume、expose、env及workdir。docker部署信息存储,记录在物理机上存储的docker镜像名,并在mysql中存储该物理机的ip地址信息与该物理机上存储的镜像名。任务提交文件生成向导,根据condorclassad任务描述方法,以及mysql中记录的信息,提供可视化页面,用户通过可视化页面进行自定义操作。在一个实施方式中,步骤s1包括有以下步骤:s11:在centralmanager上安装ubuntu系统,添加condor安装apt安装源,然后使用apt-get进行condor的安装;s12:将物理机安装ubuntu操作系统及condor软件,将物理机添加到condor集群;在condor处理节点上安装docker-engine,构建使用不同docker容器作为job调度的condor集群环境。在一个实施方式中,步骤s2包括有以下步骤:s21:将制作遥感图像处理docker镜像文件的基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令作为元数据基础信息记录下来,并作为docker镜像元数据存储在数据库中;s22:将运行遥感算法的entrypoin/cmd信息、executable/param信息作为元数据中的遥感算法启动方法记录下来,并作为docker镜像元数据存储在数据库中。在一个实施方式中,步骤s3中,构建docker部署信息存储模块,用于记录在物理机上存储的docker镜像名,并在mysql中存储物理机的ip地址信息与物理机上存储的镜像名。优选地,步骤s3包括有以下步骤:s31:对安装了docker-engine的物理机进行远程命令行登录,使用linux命令修改其配置文件参数信息,使其能够远程访问docker镜像仓库,然后执行docker重启命令使配置信息生效;s32:登入本地nexus3镜像仓库,拉取所需镜像,记录当前物理机拉取的docker镜像名,在mysql中存储对应物理机的ip地址信息与对应物理机上拉取的镜像名。在一个实施方式中,步骤s4包括有以下步骤:s41:构建用于与用户交互的web框架,该框架能将浏览器中用户提交的请求使用spring注解传递到web应用端进行处理,并能将持久化数据存储到数据库中;s42:在web服务器上安装condorclient软件,作为condor的任务提交机,使得执行任务提交文件生成向导的web应用程序和condor的任务提交机为同一台服务器;s43:构建一个任务提交文件生成向导前端交互页面,交互页面能交互构建condor任务提交描述文件所需的基本信息;s44:用户通过前端交互页面输入condor任务所需的参数后,任务提交文件生成向导按照condor提交任务描述文件的格式要求,生成condordocker模式的任务提交文件;s45:完成步骤s44后,编写一个web服务应用服务,驱动condor的任务提交机调用condor_submit任务提交文件名来提交任务,实现任务在docker中执行。优选地,步骤s42中,在web服务端安装condor客户端,作为condor的任务提交机,并将condor任务提交描述文件生成向导web服务器后端应用服务部署在condor的任务提交机上,condor任务提交描述文件生成向导web服务器后端应用服务调用condor任务提交命令,实现condor任务的提交;优选地,步骤s43中,将universe值默认设置为docker,该值将会提交一个运行在docker容器中的condor任务;condor任务提交描述文件生成向导web服务器后端应用服务从mysql中查找出可选择的镜像名,并让用户将该值赋给docker_image;condor任务提交描述文件生成向导web服务器后端应用服务从mysql中查找出可选择镜像名对应的entrypoint或cmd信息,将该值赋给executable;任务提交文件生成向导从mysql中查找出可选择镜像名对应的executable所关联的param信息,按照param提供的参数描述方式给arguments赋值。本发明与现有技术相比,具有以下特点:1、采用condor集群与docker的方式对执行任务节点的管理与物理节点容器化封装,提高了分布式环境下遥感图像处理节点的资源利用率;2、同时采用容器的方式,使得多个遥感任务可以在同一台物理机上运行。用户无须记住成百上千个condor执行节点中的镜像及其封装的遥感软件、算法、执行路径以及容器执行的命令等信息,用户也无须手工编写condorjobcommitfile,通过这个可视化向导页面;3、用户只要进行交互操作,便可根据相应信息自动映射出遥感任务提交描述文件,实现遥感任务在condor集群docker中执行。附图说明图1是本发明实施例中整体流程示意图。具体实施方式附图仅用于示例性说明,不能理解为对本发明的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本发明的限制。实施例1:如图1所示,本发明提供一种遥感图像处理docker集群的condor任务映射方法,由condor集群构建、镜像元数据存储、docker部署信息存储、任务提交文件生成向导四大部分构成。condor集群构建,主要是通过将同一网络平面内用于处理遥感图像处理的物理机,通过conder集群管理系统构建出一个condor集群,然后在集群中的每个物理机安装docker-engine,从而构建成一个可以使用不同docker容器作为一个job调度的condor集群环境,具体步骤为:s11:在centralmanager上安装ubuntu系统,添加condor安装apt安装源,然后使用apt-get进行condor的安装;s12:将物理机安装ubuntu操作系统及condor软件,将物理机添加到condor集群;在condor处理节点上安装docker-engine,构建使用不同docker容器作为job调度的condor集群环境。对于镜像元数据存储,镜像元数据存储主要用来记录docker镜像的元数据,包括往mysql中写入docker镜像名及entrypoin/cmd信息、executable/param信息、run、volume、expose、env及workdir。通过这些元数据信息,用户可以查询到每一个docker镜像文件中将运行的遥感图像处理专用软件、遥感图像处理算法以及调用需要写入的参数信息。镜像元数据存储具体包括以下步骤:s21:将制作遥感图像处理docker镜像文件的基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令作为元数据基础信息记录下来,并作为docker镜像元数据存储在数据库中;s22:将运行遥感算法的entrypoin/cmd信息、executable/param信息作为元数据中的遥感算法启动方法记录下来,并作为docker镜像元数据存储在数据库中。对于docker部署信息存储,首先构建docker部署信息存储模块,用于记录在物理机上存储的docker镜像名,并在mysql中存储物理机的ip地址信息与物理机上存储的镜像名。具体包括以下步骤:s31:对安装了docker-engine的物理机进行远程命令行登录,使用linux命令修改其配置文件参数信息,使其能够远程访问docker镜像仓库,然后执行docker重启命令使配置信息生效;s32:登入本地nexus3镜像仓库,拉取所需镜像,记录当前物理机拉取的docker镜像名,在mysql中存储对应物理机的ip地址信息与对应物理机上拉取的镜像名。对于condor任务提交描述文件生成向导,根据condorclassad任务描述方法,以及mysql中记录的信息,提供可视化页面,用户通过可视化页面进行自定义操作。具体包括以下步骤:s41:构建用于与用户交互的web框架,该框架能将浏览器中用户提交的请求使用spring注解传递到web应用端进行处理,并能将持久化数据存储到数据库中;具体实现方式为:(1)在ubuntu16.04中使用命令sudoapt-getinstallmysql-server、sudoaptisntallmysql-client和sudoaptinstalllibmysqlclient-dev安装好mysql数据库;(2)使用springmvc、spring、mybatis构建出web层的控制、视图、建模及数据库存储框架,springmvc用来处理用户请求,spring做事务管理,mybatis用来处理数据库中数据。s42:在web服务器上安装condorclient软件,作为condor的任务提交机,使得执行任务提交文件生成向导的web应用程序和condor的任务提交机为同一台服务器;s43:构建一个condor任务提交描述文件生成向导前端交互页面,交互页面能交互构建condor,提交描述文件所需的基本信息;基本信息为universe,docker_image,executable,arguments,request_memory,should_transfer_files,when_to_transfer_output,out_put,error,log,queue这些基础要素的参数信息。具体实现方式为:(1)universe值默认设置为docker,该值将会提交一个运行在docker容器中的condor任务;(2)condor任务提交描述文件生成向导web服务器后端应用服务从mysql中查找出可选择的镜像名,并让用户将该值赋给docker_image;(3)condor任务提交描述文件生成向导web服务器后端应用服务从mysql中查找出可所选镜像名对应的entrypoint或cmd信息,将该值赋给executable;(4)condor任务提交描述文件生成向导web服务器后端应用服务从mysql中查找出可所选镜像名对应的executable所关联的param信息,按照param提供的参数描述方式给arguments赋值;(5)给出一个request_memory文本框,让用户填写运行所选遥感算法所需的内存值;(6)给出一个选项让用户决定是否要启动传输文件,如果需要则给should_transfer_files赋yes值,否则赋no值;(7)给出一个选项让用户决定何时将结果输出,并将选择的值赋给when_to_transfer_output,默认值为on_exit;(8)让用户填入out_put的文件名;(9)让用户填入error的文件名;(10)让用户填入log的文件名;(11)让用户填写任务执行次数并将值赋给queue;(12)让用户给将要映射的任务提交文件取一个名字。s44:用户通过前端交互页面输入condor任务所需的参数后,任务提交文件生成向导按照condor提交任务描述文件的格式要求,生成condordocker模式的任务提交文件;s45:condor任务提交描述文件生成向导web服务器后端应用服务在映射完任务提交文件后,调用condor_submit任务提交文件名来提交任务,实现任务在docker中执行。显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1