大数据运维管理平台的制作方法

文档序号:20767283发布日期:2020-05-15 19:08阅读:246来源:国知局
大数据运维管理平台的制作方法

本申请涉及大数据技术领域,特别是涉及一种大数据运维管理平台。



背景技术:

随着大数据、云计算的快速发展,大数据平台作为大数据分析工具被广泛应用于各行各业中,对大数据进行管理运维是不可避免的一个环节。

相关技术通常基于shell脚本或bat脚本对大数据组件进行自动安装部署。但是,基于shell脚本或bat脚本的自动安装部署方式在不同平台下的支持和行为有差异,在脚本编写时需要考虑不同shell的语法和兼容问题,不仅非常繁琐,而且极易发生错误。为了实现大数据管理,管理平台往往需要使用多种编程语言开发,不利于开发和团队间的配合工作,系统的复杂度和开发的困难度均较高。



技术实现要素:

本申请提供了一种大数据运维管理平台,屏蔽了不同操作系统具体运维操作方式的差异,简化了运维操作脚本编写,有利于降低系统的复杂度、开发的困难度和维护工作的复杂度。

为解决上述技术问题,本发明实施例提供以下技术方案:

本发明实施例提供了一种大数据运维管理平台,包括:

包括控制节点和多个子节点,每个子节点均具有预先构建的python运维库;

所述控制节点用于向外部系统提供大数据组件集群的操作方式,并向各节点发送操作指令;

各个子节点根据所述控制节点发送的大数据组件运维操作指令调用所述python运维库对目标大数据组件执行相应的运维操作;

其中,所述python运维库包括多组运维操作脚本且用于为各运维操作提供统一的应用程序编程接口,各运维操作脚本均利用pyhton语言进行封装。

可选的,所述控制节点还包括组件配置插件;

所述组件配置插件用于当接收到第一子节点的第一大数据组件的变更信息后,基于所述变更信息对所述第一大数据组件的组件配置文件进行更新,并将更新后的组件配置文件下发至所述第一子节点;

其中,所述组件配置文件包括组件名称、组件版本、组件描述、组件服务、组件服务各运维操作与运维操作脚本的对应关系。

可选的,所述控制节点包括集群状态监控模块,还包括与所述集群状态监控模块相连的告警提示模块;

所述集群状态监控模块用于按照预设频率收集并汇总各子节点的资源消耗信息;所述资源消耗信息为当前子节点反馈的心跳数据和所属大数据组件集群的集群状态信息;

所述告警提示模块用于当检测到当前子节点的资源消耗超过预设能耗阈值或是当前子节点的运行状态异常,则进行告警提示。

可选的,所述操作方式可为以下任意一项或任意组合:

表现层状态转移应用程序编程接口、web页面和命令行。

可选的,大数据运维管理平台的系统版本采用python编程语言编译,所述控制节点包括升级模块,所述升级模块用于根据升级指令中携带的更新文件列表执行系统版本升级;所述更新文件列表包括升级后系统版本中新增文件、相比升级前系统版本发生修改的替换文件和相比升级前系统版本减少的删除文件;

所述升级模块用于在所述升级前系统版本基础上添加所述新增文件、从所述升级前系统版本中删除所述删除文件、并利用所述替换文件替换所述升级前系统版本中相应文件,以完成系统版本升级。

可选的,所述控制节点包括升级模块;

所述升级模块利用git分布式版本控制系统的补丁包方式执行系统版本升级,所述git分布式版本控制系统的补丁包用于根据升级前系统版本和升级后系统版本自动生成更新文件列表,所述更新文件列表包括每个文件相比所述升级前系统版本和所述升级后系统版本发生增、删、改操作的记录信息。

可选的,所述python运维库还包括多个子运维库,每个子运维库对应一种类型的大数据组件;每个子运维库均包含相应大数据组件在不同部署环境中实现同一运维操作的多个运维脚本组,且各运维脚本组具有唯一的标签。

可选的,所述标签通过相应部署环境的系统架构信息来激活。

可选的,所述python运维库中各运维操作脚本还支持函数调用;相应的,各子节点还包括脚本调用模块,所述脚本调用模块用于响应所属集群的大数据组件的脚本调用指令,所述脚本调用指令为利用相应大数据组件集成时预先定义的脚本调用函数按照目标运维操作各步骤顺序从所述python运维库中调用相应的运维操作脚本的指令。

可选的,所述控制节点和各子节点的后台开发语言、所述大数据组件的运维操作语言和所述python运维库中的各运维脚本的编程语言均相同,且均为python语言。

本申请提供的技术方案的优点在于,基于leader(控制节点)/follower(子节点)的系统架构,每个子节点负责一个或多个大数据组件,并在子节点上设置python运维库,控制节点提供大数据组件的操作方式和下发操作指令,子节点在接收到操作指令后利用python运维库执行相应的运维操作,python运维库统一使用python封装的运维脚本进行安装和部署,将操作系统和不同shell脚本的差异性屏蔽,不同操作系统下安装步骤相同的脚本只用编写一份,极大地简化了安装脚本的编写和维护工作;python运维库针对各个常用系统操作使用了统一的接口,用户在编写组件运维脚本的时候无需再过多的考虑系统或平台差异化的部分,无需再过多的考虑脚本的兼容性,进一步简化了运维操作脚本的编写和维护工作,而且还有利于降低系统的复杂度和开发的困难度。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种大数据运维管理平台的系统架构示意图;

图2为本发明实施例提供的另一种大数据运维管理平台的系统架构示意图;

图3为本发明实施例提供的python运维库的架构示意图;

图4为本发明实施例提供的控制节点或子节点一种具体实施方式结构图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。

在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。

首先参见图1,图1为本发明实施例提供的大数据运维管理平台在一种具体实施方式下的系统架构示意图,本发明实施例可包括以下内容:

大数据运维管理平台的系统架构可采用leader(领导者)/follower(下属)模式,也就是说,大数据运维管理平台可包括控制节点1和多个子节点,各子节点可表示为21、22、……、2n。控制节点1负责操作整个集群,且可向外部系统提供大数据组件集群的操作方式,并向各节点发送操作指令,收集各子节点反馈数据信息。控制节点1对外可提供表现层状态转移应用程序编程接口restapi(representationalstatetransferapplicationprogramminginterface)、web页面和命令行等操作集群方式,如图2所示。控制节点1通过api服务器提供restapi可实现操作集群大数据组件和修改配置等操作,用户除了可直接使用restapi的交互方式,还可以使用传统命令行或者是web页面的方式操作大数据集群。

其中,每个子节点对接一个或多个大数据组件且均具有预先构建的python运维库。各子节点负责对所属集群的一个或多个大数据组件进行运维操作,并将所属集群的状态信息反馈给主控节点1。具体的,各个子节点可根据控制节点1发送的大数据组件运维操作指令调用python运维库对目标大数据组件执行相应的运维操作。

在本申请中,python运维库包括多组运维操作脚本且用于为各运维操作提供统一的应用程序编程接口,各运维操作脚本均利用pyhton语言进行封装,运维操作脚本如解压缩脚本,复制文件脚本,文件正则替换脚本,安装软件包脚本和配置软件源脚本等。python运维库针对各个常用系统操作使用了统一的接口,底层可根据不同的操作系统甚至是不同的架构的平台提供了不同的实现细节,如图3所示。所有操作均提供统一的api,屏蔽掉不同操作系统具体实现步骤的差异,确保在不同系统下同样操作的程序写法一致,用户在编写组件运维脚本的时候无需再过多的考虑系统或者平台差异化的部分,无需再过多的考虑脚本的兼容性,简化开发过程。

在本发明实施例提供的技术方案中,基于leader(控制节点)/follower(子节点)的系统架构,每个子节点负责一个或多个大数据组件,并在子节点上设置python运维库,控制节点提供大数据组件的操作方式和下发操作指令,子节点在接收到操作指令后利用python运维库执行相应的运维操作,python运维库统一使用python封装的运维脚本进行安装和部署,将操作系统和不同shell脚本的差异性屏蔽,不同操作系统下安装步骤相同的脚本只用编写一份,极大地简化了安装脚本的编写和维护工作;python运维库针对各个常用系统操作使用了统一的接口,用户在编写组件运维脚本的时候无需再过多的考虑系统或平台差异化的部分,无需再过多的考虑脚本的兼容性,进一步简化了运维操作脚本的编写和维护工作,而且还有利于降低系统的复杂度和开发的困难度。

可以理解的是,相关技术中同一个管理平台会出现多种编程语言,导致整个系统复杂度较高而且维护操作复杂,不利于项目的快速开发。基于此,本申请的控制节点1和各子节点的后台开发语言、大数据组件的运维操作语言和python运维库中的各运维脚本的编程语言均可相同,且可均为python语言。使用python语言作为大数据管理平台的后台开发语言,大数据组件相关的运维操作语言也使用python。运维脚本统一使用python语言编写可进一步简化了脚本编写工作,将管理系统和运维部分的编程语言统一,可以大大的降低系统的复杂度和开发的困难度。此外,利用了python语言为解释性语言、无需进行编译的特点,还可简化大数据管理平台的升级过程,本申请还提供了大数据管理平台的两种升级方式,可包括下述内容:

在一种实施方式中,控制节点1可包括升级模块,升级模块用于根据升级指令中携带的更新文件列表执行系统版本升级;更新文件列表包括升级后系统版本中新增文件、相比升级前系统版本发生修改的替换文件和相比升级前系统版本减少的删除文件。升级模块用于在升级前系统版本基础上添加新增文件、将删除文件从升级前系统版本中删除、并利用替换文件替换升级前系统版本中相应文件,以完成系统版本升级。也就是说,本申请支持简便的增量升级方式,在执行升级操作时仅需把项目中设计修改的文件直接替换为新版本文件即可,例如可先列出修改过的文件列表,使用新版本的文件替换;同时整理出新版本中不存在的文件,在升级时予以删除,无需再卸载和重新安装整个管理系统,大大地简化了系统版本升级。

作为另外一种可选的实施方式,控制节点1的升级模块还可利用git分布式版本控制系统的补丁包方式执行系统版本升级,git分布式版本控制系统的补丁包可用于根据升级前系统版本和升级后系统版本自动生成更新文件列表,更新文件列表包括每个文件相比升级前系统版本和升级后系统版本发生增、删、改操作的记录信息。本申请在利用git的patch(补丁包)的方式升级过程中,git的patch包中详细列出了大数据管理平台中每个文件的增删改的情况。对于修改过的文件,patch中详细保存了该文件中精确到行的增加和删除记录。这种方法和传统需要编译的项目相比,升级操作只需使用git应用patch即可,新版发布可避免重编译、打包、卸载清理和安装等繁琐过程,简化升级过程。

相关技术中基于shell脚本或bat脚本对大数据组件进行自动安装部署的方式对异构平台,例如x86、ppc64le、arm64等支持情况不好,且其没有为多套异构平台设计不同的安装配置脚本。为了适配异构平台,还需要发布目标平台对应的管理系统,开发和版本的维护操作非常繁琐。在相关技术的基础上为了实现大数据管理,管理平台往往需要使用多种编程语言开发,不利于开发和团队间的配合工作,体验不佳。鉴于此,本申请还对上述实施例中的python运维库进行了扩充。

尽管针对不同操作系统或是不同架构的平台,本申请提供了python运维库,但是有些组件的部署要求不同平台使用不同的安装包,或者是使用不同的安装脚本等。换句话说,同一组件在不同系统或者异构平台的运维操作步骤可能存在差异。为了解决这个问题,本申请的python运维库中还包括多套运维脚本组,不同的运维脚本组可以使用标签加以区别。具体来说,python运维库可包括多个子运维库,每个子运维库对应一种类型的大数据组件;每个子运维库均包含相应大数据组件在不同部署环境中实现同一运维操作的多个运维脚本组,且各运维脚本组具有唯一的标签。举例来说,a大数据组件在x86部署环境中依次按照步骤a1、a2、a3执行完安装操作时,在ppc64le部署环境中依次按照步骤a2、a1、a3执行完安装操作时,在arm64部署环境中仅需要执行步骤a2和a3便可安装操作。基于此,可为a大数据组件设置一个子运维库,该运维库包括三组运维操作脚本组,各运维操作脚本组的标签可为相应部署环境的名称或编号,第一运维操作脚本组为由执行a1、a2、a3的运维操作的脚本组成且按照a1、a2、a3执行安装顺序;第二运维操作脚本组为由执行a1、a2、a3的运维操作的脚本组成且按照a2、a1、a3执行安装顺序;第三运维操作脚本组为由执行a2、a3的运维操作的脚本组成且按照a2、a3执行安装顺序。同时还可以配置依照系统架构来激活对应的标签饿功能,即标签可通过相应部署环境的系统架构信息来激活。

由上可知,本发明实施例提供运维脚本组的功能,可以指定不同异构平台或者特殊情况下操作时调用不同组的运维脚本,从而解决不同异构平台运维操作步骤有差异的问题,实现使用不同的运维脚本组支持多系统和异构平台的功能。

在另外一种应用场景中,若大数据组件部署在不同系统下操作步骤的差异不是很大,例如仅仅是几行代码,这种情况下使用不同的运维脚本组会非常繁琐,并且用大量的重复代码。基于此,本申请的python运维库中各运维操作脚本还支持函数调用;相应的,各子节点还包括脚本调用模块,脚本调用模块用于响应所属集群的大数据组件的脚本调用指令,脚本调用指令为利用相应大数据组件集成时预先定义的脚本调用函数按照目标运维操作各步骤顺序从python运维库中调用相应的运维操作脚本的指令。也就是说,本申请支持自定义跨平台运维脚本函数定义功能,集成大数据组件时可以根据实际应用需求来自定义函数。该自定义函数和上述python运维库中提供接口的不同之处为作用域的差别。自定义函数仅仅作为python运维库的补充使用,作用范围为单个组件,而python运维库接口的作用范围是管理系统全局。

本发明实施例在利用运维脚本组的功能解决特殊平台或系统的运维操作需求之外,用户还可在集成大数据组件时还可进行自定义脚本调用,更加方便用户使用,简化运维操作。

可以理解的是,对于子节点上部署的大数据组件,会由于实际情况进行新增或者删除,为了实现大数据组件的灵活增减,本申请将受管理的大数据组件和大数据管理平台本身的代码逻辑分隔开来,大数据组件的运维操作可使用配置化的方式,具体可包括下述内容:

在本发明实施例中,第一子节点为控制节点1下的任意一个子节点,第一大数据组件为第一子节点所属集群的任意一个发生变更的组件,为了便于描述,利用第一子节点和第一大数据组件进行命名。控制节点1还可包括组件配置插件;组件配置插件用于当接收到第一子节点的第一大数据组件的变更信息后,基于变更信息对第一大数据组件的组件配置文件进行更新,并将更新后的组件配置文件下发至第一子节点。组件配置文件包括组件名称、组件版本、组件描述、组件服务、组件服务各运维操作与运维操作脚本的对应关系。

在本发明实施例中,控制节点1会预先设置组件配置文件模板,然后基于组件配置文件模板为集群中所有的大数据组件生成组件配置文件,利用组件配置文件对大数据组件进行管理。组件配置文件模板中包含组件名称、组件版本、组件描述、组件服务、组件服务各运维操作与运维操作脚本的对应关系,组件服务可支持多个操作,各组件服务支持运维操作不同,例如组件服务1可支持安装操作、启动操作和停止操作,组件服务2可支持解压操作、加密操作等。

由上可知,本发明实施例只需修改组件配置文件便可实现对大数据组件的灵活增减。

可以理解的是,各子节点负责维护和控制节点1的连通性,并定时或实时向控制节点1发送心跳数据、监控数据、各子节点的任务执行情况及所属集群的状态信息,控制节点1可实时或定时收集各个子节点发来的这些数据信息,从而可尽快察觉到子节点工作状态的变化。相应的,控制节点1可包括集群状态监控模块,还包括与集群状态监控模块相连的告警提示模块;集群状态监控模块用于按照预设频率收集并汇总各子节点的资源消耗信息;资源消耗信息为当前子节点反馈的心跳数据和所属大数据组件集群的集群状态信息;告警提示模块用于当检测到当前子节点的资源消耗超过预设能耗阈值或是当前子节点的运行状态异常,则进行告警提示。其中,预设能耗阈值可根据实际应用场景进行确定,本申请对此不作任何限定。

最后,从硬件角度来说,本申请的控制节点1和各子节点其内均可包含图4所示的存储器40和处理器41。存储器40用于存储计算机程序;处理器41,用于执行计算机程序时实现如上述任意一实施例在大数据运维管理平台中实现相应的大数据运维管理方法的步骤。

其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器41可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器41还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器40还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器40至少用于存储以下计算机程序401,其中,该计算机程序被处理器41加载并执行之后,能够实现前述任一实施例公开的大数据运维管理方法的相关步骤。另外,存储器40所存储的资源还可以包括操作系统402和数据403等,存储方式可以是短暂存储或者永久存储。其中,操作系统402可以包括windows、unix、linux等。数据403可以包括但不限于测试结果对应的数据等。

在一些实施例中,控制节点1或各子节点中还可包括有显示屏42、输入输出接口43、通信接口44、电源45以及通信总线46。本领域技术人员可以理解,图4中示出的结构并不构成对大数据运维管理装置的限定,可以包括比图示更多或更少的组件,例如传感器47。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

以上对本申请所提供的一种大数据运维管理平台进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1