配置更新方法、装置、服务器和电子设备与流程

文档序号:21971421发布日期:2020-08-25 19:01阅读:109来源:国知局
配置更新方法、装置、服务器和电子设备与流程

本发明涉及大数据处理技术领域,尤其是涉及一种配置更新方法、装置、服务器和电子设备。



背景技术:

大数据系统通常依赖于多种大数据组件运行,当前开源的大数据组件种类繁多,大多数的大数据组件是分布式部署,即多台节点设备同时运行大数据组件;在分布式部署的情况下,各节点设备的配置信息较为复杂,这些节点设备可能具有一部分通用的配置,而每台节点设备也可能具有一些差异化配置;如果需要对这些节点设备进行配置更新,主要通过工程师手动登录节点设备更改配置,或者采用批量操作的方式更改配置;但这种批量操作的方式,难以对节点设备的差异化配置进行更改,还需要工程师手动操作,或者在节点设备上运行脚本,导致配置更新的效率较低。



技术实现要素:

有鉴于此,本发明的目的在于提供一种配置更新方法、装置、服务器和电子设备,以提高配置更新的效率。

第一方面,本发明实施例提供了一种配置更新方法,所述方法应用于配置管理服务器;所述配置管理服务器与多台运行有大数据组件的节点设备连接;所述配置管理服务器中预先存储有每台所述节点设备的配置项;所述方法包括:接收针对目标节点设备的配置更新请求;其中,所述配置更新请求包括所述目标节点设备的待更新配置文件的标识,以及所述待更新配置文件中至少一部分配置项的更新值;根据所述待更新配置文件的标识,获取所述待更新配置文件;根据所述至少一部分配置项的更新值,以及所述待更新配置文件中的配置项,生成所述目标节点设备的当前配置文件;将所述当前配置文件发送至所述目标节点设备,以将所述目标节点设备中的所述待更新配置文件替换为所述当前配置文件。

进一步的,多台所述节点设备划分为至少一组节点组;针对每组所述节点组,所述配置管理服务器中存储有该组节点组的通用配置项;该节点组中的每个节点设备的所述通用配置项的配置值相同;所述配置管理服务器中还存储有该节点组中的每个节点设备对应的差异配置项;针对该节点组中的每个节点设备,该节点设备的差异配置项的配置值与该节点设备以外的节点设备的差异配置项的配置值不同。

进一步的,根据所述至少一部分配置项的更新值,以及所述待更新配置文件中的配置项,生成所述目标节点设备的当前配置文件的步骤,包括:合并所述待更新配置文件中,所述目标节点设备的差异配置项以及所述目标节点设备所属的节点组的通用配置项,得到所述目标节点设备的所述待更新配置文件的配置项;根据所述至少一部分配置项的更新值,更新所述待更新配置文件中的配置项;根据更新后的所述待更新配置文件中的配置项,生成所述目标节点设备的当前配置文件。

进一步的,每组所述节点组预设有配置模板;所述配置模板中包括所述节点组中节点设备的各个配置项;所述配置更新请求中包括所述待更新配置文件的全部配置项的配置值;其中,至少一部分配置项的配置值为用户输入的更新值;所述根据所述至少一部分配置项的更新值,更新所述待更新配置文件中的配置项的步骤,包括:针对所述配置更新请求中的每个配置项,将该配置项的配置值填入至所述配置模板中该配置项中;所述根据更新后的所述待更新配置文件中的配置项,生成所述目标节点设备的当前配置文件的步骤,包括:通过填入配置值的所述配置模板,对所述目标节点设备的所述待更新配置文件中的配置项进行渲染处理,生成预设格式的所述目标节点设备的当前配置文件。

进一步的,所述配置管理服务器中还预先存储有多种函数;每种所述函数设置有函数名称;所述函数用于获取预设数据;所述将该配置项的配置值填入至所述配置模板中该配置项中的步骤,包括:如果该配置项的配置值为预设的函数名称,执行所述函数名称对应的函数,以获取该配置项的配置值;将获取到的配置值填入至所述配置模板中的该配置项中。

进一步的,生成所述目标节点设备的当前配置文件的步骤之后,所述方法包括:根据所述当前配置文件,更新所述配置管理服务器中存储的所述目标节点设备的配置项;生成并保存所述配置更新请求对应的配置操作记录。

第二方面,本发明实施例提供了一种配置更新方法,所述方法应用于运行有大数据组件的节点设备;所述节点设备与配置管理服务器连接;所述配置管理服务器中预先存储有所述节点设备的配置项;所述方法包括:如果接收到来自所述配置管理服务器发送的当前配置文件,获取存储在所述节点设备中的所述当前配置文件对应的待更新配置文件,将所述待更新配置文件替换为所述当前配置文件;其中,所述当前配置文件由所述配置管理服务器通过下述方式生成:接收针对目标节点设备的配置更新请求;其中,所述配置更新请求包括所述目标节点设备的待更新配置文件的标识,以及所述待更新配置文件中至少一部分配置项的更新值;根据所述待更新配置文件的标识,获取所述待更新配置文件;根据所述至少一部分配置项的更新值,以及所述待更新配置文件中的配置项,生成所述目标节点设备的当前配置文件。

第三方面,本发明实施例提供了一种配置更新装置,所述装置设置于配置管理服务器;所述配置管理服务器与多台运行有大数据组件的节点设备连接;所述配置管理服务器中预先存储有每台所述节点设备的配置项;所述装置包括:接收模块,用于接收针对目标节点设备的配置更新请求;其中,所述配置更新请求包括所述目标节点设备的待更新配置文件的标识,以及所述待更新配置文件中至少一部分配置项的更新值;获取模块,用于根据所述待更新配置文件的标识,获取所述待更新配置文件;根据所述至少一部分配置项的更新值,以及所述待更新配置文件中的配置项,生成所述目标节点设备的当前配置文件;第一替换模块,用于将所述当前配置文件发送至所述目标节点设备,以将所述目标节点设备中的所述待更新配置文件替换为所述当前配置文件。

第四方面,本发明实施例提供了一种配置更新装置,所述装置设置于运行有大数据组件的节点设备;所述节点设备与配置管理服务器连接;所述配置管理服务器中预先存储有所述节点设备的配置项;所述装置包括:第二替换模块,用于如果接收到来自所述配置管理服务器发送的当前配置文件,获取存储在所述节点设备中的所述当前配置文件对应的待更新配置文件,将所述待更新配置文件替换为所述当前配置文件;其中,所述当前配置文件由所述配置管理服务器通过下述方式生成:接收针对目标节点设备的配置更新请求;其中,所述配置更新请求包括所述目标节点设备的待更新配置文件的标识,以及所述待更新配置文件中至少一部分配置项的更新值;根据所述待更新配置文件的标识,获取所述待更新配置文件;根据所述至少一部分配置项的更新值,以及所述待更新配置文件中的配置项,生成所述目标节点设备的当前配置文件。

第五方面,本发明实施例提供了一种服务器,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现上述第一方面任一项所述的配置更新方法。

第六方面,本发明实施例提供了一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现上述第二方面所述的配置更新方法。

第七方面,本发明实施例提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使处理器实现上述第一方面或第二方面任一项所述的配置更新方法。

本发明提供的一种配置更新方法、装置、服务器和电子设备,根据该配置更新请求中目标节点设备的待更新配置文件的标识,获取待更新配置文件,根据该配置更新请求中所包含的待更新配置文件中至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件;将当前配置文件发送至目标节点设备,以将目标节点设备中的待更新配置文件替换为当前配置文件。该方法中设置了配置管理服务器,通过该配置管理服务器,根据用户提供的配置管理请求为节点设备更新配置文件,该方式不需要工程师手动登录节点设备更改配置,或者在节点设备上运行脚本以更改配置,提高了配置更新的效率。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

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

图1为本发明实施例提供的一种配置更新方法的流程图;

图2为本发明实施例提供的另一种配置更新方法的流程图;

图3为本发明实施例提供的另一种配置更新方法的流程图;

图4为本发明实施例提供的一种配置管理系统的架构示意图;

图5为本发明实施例提供的一种配置更新的逻辑示意图;

图6为本发明实施例提供的一种节点组配置更新及下发的方法的流程图;

图7为本发明实施例提供的一种单个节点设备配置更新及下发的方法的流程图;

图8为本发明实施例提供的一种配置更新装置的结构示意图;

图9为本发明实施例提供的一种服务器或电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

随着大数据和ai(artificialintelligence,人工智能)技术的发展,各个行业越来越深刻地意识到大数据技术对于自身产品服务的价值,大数据技术长久以来依赖于apache等开源社区贡献的系统和工具来进行,当前开源的大数据组件约有100多种,常用的也有至少30种,大数据组件种类繁多,同时大数据组件大多是分布式的集群,比如elasticsearch、hadoop等,许多公司针对自身大数据组件使用情况搭建了各种大数据平台,云公司也推出了托管大数据平台对外提供技术服务,比如阿里云的emr(elasticmapreduce,运行在阿里云平台上的一种大数据处理的系统解决方案)、金山云的kmr(kingsoftmapreduce,一种可伸缩的通用数据计算和分析平台)、kes(kingsoftcloudelasticsearchservice,金山云elasticsearch服务)产品等。

大数据平台管理着不同的大数据组件,因为大数据组件都是分布式部署,所以配置管理较单机部署有复杂性,首先所有节点设备可能有通用的配置,每台节点设备也可能具有一些差异化配置,对于大数据平台来说,维护和管理这些配置是非常重要的功能,大数据组件的配置管理是大数据组件运维生命周期的重要组成部分。大数据组件配置管理系统(模块)也是整个大数据平台最重要的组成部分。

对于一般自建的大数据平台,平台主要关注的是大数据组件的平台化,即使用大数据组件的用户使用平台执行自己的任务是否便利。如果需要对节点设备进行配置更新,主要通过工程师手动登陆机器更改配置,或者使用scp(securecopy,安全复制)、ansible等批量操作更改配置,这种方式主要问题是无法解决每一个节点设备的差异化配置,并且配置更新的效率较低,同时整个配置过程是配置的变更记录,不方便配置回滚和配置历史查询。

为了解决每台节点设备差异化配置的问题,一些大数据平台可能会通过一些复杂的脚本手动执行来实现,如果有100台节点设备,其中有30台节点设备需要改成a配置,另外30台节点设备需要改成b配置,整个配置更新的过程需要较复杂的脚本才能实现,配置更新的整体效率较低。

基于此,本发明实施例提供的一种配置更新方法、装置、服务器和电子设备,该技术可以应用于运行有大数据组件的节点设备的配置更新的场景中,尤其是多台节点设备的配置更新的场景。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种配置更新方法进行详细介绍,方法应用于配置管理服务器;配置管理服务器与多台运行有大数据组件的节点设备连接;配置管理服务器中预先存储有每台节点设备的配置项;其中,大数据组件可以理解为互联网大数据生态系统生产中常用的工具和系统,比如hadoop、hbase或elasticsearh等;节点设备可以理解为安装有大数据组件的电子设备,该节点设备的数量可以有多台;安装大数据组件的多个节点设备的集合组成大数据集群;上述配置项可以理解为纳入配置管理范畴的每台节点设备的配置项目;如图1所示,该方法包括如下步骤:

步骤s102,接收针对目标节点设备的配置更新请求;其中,该配置更新请求包括该目标节点设备的待更新配置文件的标识,以及待更新配置文件中至少一部分配置项的更新值。

上述目标节点设备可以是多台节点设备中的一台或多台;上述待更新配置文件可以理解为目标节点设备中运行的大数据组件所对应的配置文件,该配置文件中的至少一部分配置项的配置值需要更新;上述待更新配置文件的标识可以包括待更新配置文件的路径或名称等;上述至少一部分配置项的更新值可以理解为,针对待更新配置文件中的至少一部分配置项,需要对这一部分配置项进行更新后的数值;在实际实现时,配置管理服务器通常会对外提供一个前端管理界面,用户可以通过该前端管理界面向配置管理服务器发送针对目标节点设备的配置更新请求,或者,用户可以有单独的用户终端,配置管理服务器可以提供api(applicationprogramminginterface,应用程序接口)接口,该用户终端与配置管理服务器通过api接口通信连接,用户可以通过用户终端和api接口向配置管理服务器发送针对目标节点设备的配置更新请求,在配置更新请求中通常包括目标节点设备的待更新配置文件的路径或名称等标识,以及待更新配置文件中需要更新的配置项的更新值。

步骤s104,根据上述待更新配置文件的标识,获取待更新配置文件;根据上述至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件。

上述当前配置文件可以理解为对待更新配置文件中需要更新的配置项完成更新后的配置文件;在实际实现时,配置管理服务器可以根据待更新配置文件的路径或名称等标识,获取到相应的待更新配置文件;配置管理服务器还可以根据接收到的配置更新请求中,待更新配置文件中需要更新的一部分配置项的更新值,以及预先存储的待更新配置文件中的配置项,生成目标节点设备的更新后的当前配置文件。

步骤s106,将当前配置文件发送至目标节点设备,以将目标节点设备中的待更新配置文件替换为该当前配置文件。

在实际实现时,上述当前配置文件通常是完整的配置文件,在配置管理服务器生成目标节点设备的当前配置文件后,通常会将该当前配置文件发送至目标节点设备,目标节点设备一般不需要再对接收到的当前配置文件进行判断或修改等处理,将待更新配置文件替换为当前配置文件即可正常使用。

本发明实施例提供的一种配置更新方法,根据该配置更新请求中目标节点设备的待更新配置文件的标识,获取待更新配置文件,根据该配置更新请求中所包含的待更新配置文件中至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件;将当前配置文件发送至目标节点设备,以将目标节点设备中的待更新配置文件替换为当前配置文件。该方法中设置了配置管理服务器,通过该配置管理服务器,根据用户提供的配置管理请求为节点设备更新配置文件,该方式不需要工程师手动登录节点设备更改配置,或者在节点设备上运行脚本以更改配置,提高了配置更新的效率。

本发明实施例还提供另一种配置更新方法,该方法在上述实施例方法的基础上实现;该方法重点描述根据至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件的具体过程。

本实施例中,多台节点设备划分为至少一组节点组;其中,节点组也可以理解为配置组,通常是按照节点设备的配置一致性对多台节点设备进行分组得到,在实际实现时,为了尽可能减少配置项占用的存储空间,以及为了实现多个节点设备的快速配置更新,可以采用节点设备分组的方式,即把配置项基本一致、可以抽象出通用配置项的节点设备划分为一个节点组;针对每组节点组,配置管理服务器中存储有该组节点组的通用配置项;该节点组中的每个节点设备的通用配置项的配置值相同;其中,通用配置项可以理解为同一节点组中的所有节点设备相互之间配置值均一致的配置项;上述配置值可以理解为配置项所对应的具体数据内容;也可以理解为同一节点组中的每个节点设备的通用配置项具有相同的配置值。

配置管理服务器中还存储有该节点组中的每个节点设备对应的差异配置项;针对该节点组中的每个节点设备,该节点设备的差异配置项的配置值与该节点设备以外的节点设备的差异配置项的配置值不同;上述差异配置项可以理解为同一节点组中的所有节点设备相互之间配置值不一致的配置项;也可以理解为在同一节点组中,每个节点设备的差异配置项与除该节点设备以外的其他节点设备的差异配置项通常具有不同的配置值;比如,一个节点组包括100个配置项,其中有80个通用配置项,即针对该节点组中的每个节点设备,这80个通用配置项的配置值均相同;另外20个配置项为每个节点设备对应的差异配置项,每个节点设备的差异配置项的配置值与该节点设备以外的节点设备的差异配置项的配置值通常并不相同。

每组节点组预设有配置模板;配置模板中包括节点组中节点设备的各个配置项,也可以理解为配置模板中包含了相应节点组中的所有配置项;配置更新请求中包括待更新配置文件的全部配置项的配置值;其中,至少一部分配置项的配置值为用户输入的更新值;在实际实现时,用户预先获取有待更新配置文件的全部配置项以及各个配置项的配置值,当用户需要修改待更新配置文件中的一部分配置项的配置值时,可以通过前端管理界面或api对相应的配置项的配置值进行修改更新,待更新配置文件的所有配置项的配置值包括修改后的更新值均包含在配置更新请求中。

配置管理服务器中还预先存储有多种函数;每种函数设置有函数名称;该函数用于获取预设数据;比如,当函数名称为node_ip时,若以${}进行标记,则${node_ip}表示的含义可以理解为获取目标节点设备的主机的真实ip地址。

如图2所示,该方法包括如下步骤:

步骤s202,接收针对目标节点设备的配置更新请求;其中,该配置更新请求包括该目标节点设备的待更新配置文件的标识,以及待更新配置文件中至少一部分配置项的更新值。

配置管理服务器可以对外提供rest(representationalstatetransfer,表现层状态转移)api以接收针对目标节点设备的配置更新请求,该配置更新请求中通常可以指定待更新目标节点设备的主机名、待更新节点组的名称、待更新配置文件的路径或名称等;如目标节点设备中的大数据组件名称为“opensource-6.8.4”,待更新配置文件的名称和路径为“/root/kibana.yml”等;上述目标节点设备的数量可以是一台,也可以是多台,当数量为多台时,多台目标节点设备可能属于同一个节点组。

步骤s204,根据上述待更新配置文件的标识,获取待更新配置文件。

在实际实现时,用户外部操作所输入的配置更新请求可以通过api映射到一个标记,通过该标记可以指向指定节点组的指定目标节点设备的待更新配置文件,可以从配置管理数据库中读取该待更新配置文件;如果配置更新请求中指定的是目标节点设备的主机名,则从配置管理数据库读取到的是该目标节点设备所属的节点组的配置模板、该目标节点设备所属节点组的通用配置项,以及该目标节点设备的差异配置项;如果配置更新请求中指定的是节点组名称,则从配置管理数据库读取到的是该节点组的配置模板、该节点组的通用配置项,以及该节点组中每个目标节点设备的差异配置项。

步骤s206,合并上述待更新配置文件中,目标节点设备的差异配置项以及该目标节点设备所属的节点组的通用配置项,得到该目标节点设备的待更新配置文件的配置项。

在实际实现时,节点组中通常只包含有该节点组中节点设备的一部分公用的通用配置项,如果配置更新请求中指定的是目标节点设备的主机名,则需要将非公用的该目标节点设备的差异配置项与该目标节点设备所属的节点组的通用配置项合并到一起,才能得到该目标节点设备所需要的待更新配置文件的配置项;如果配置更新请求中指定的是节点组名称,则可以将获取到的该节点组的通用配置项与该节点组中每个目标节点设备的差异配置项合并,得到该节点组中每个目标节点设备的所对应的待更新配置文件的配置项。为便于前端调用,待更新配置文件的配置项可以采用json格式化语言,也可以采用其他形式。

步骤s208,根据至少一部分配置项的更新值,更新待更新配置文件中的配置项。

当得到目标节点设备的待更新配置文件的配置项后,配置管理服务器可以根据配置更新请求中所包含的至少一部分配置项的更新值,将待更新配置文件中相应的配置项的配置值进行更新。在实际实现时,该步骤s208可以包括下述步骤20:

步骤20,针对配置更新请求中的每个配置项,将该配置项的配置值填入至配置模板中该配置项中。

由于配置更新请求中包含了待更新配置文件的全部配置项的配置值,针对其中的每个配置项,将该配置项的配置值填入至相应的配置模板中该配置项中,其中包括至少一部分配置项的更新值;具体的,该步骤20可以通过下述步骤一至步骤二实现:

步骤一,如果该配置项的配置值为预设的函数名称,执行函数名称对应的函数,以获取该配置项的配置值。

在实际实现时,配置项的配置值可以至少包括以下两种情况,一种是实际值,如配置项“server.port”的配置值为“5601”;另一种是以函数名称表示,比如以${}为标记,${}内部所存储的是函数名称,配置管理服务器预置了多种函数,根据要下发的目标节点设备的主机情况可以渲染成相应主机的内容;如配置项“server.host”的配置值为${node_ip},通过执行相应的函数,node_ip渲染为目标节点设备的主机的真实ip,从而获取到“server.host”这个配置项的配置值“10.100.100.1”,实现了目标节点设备差异化配置的渲染。

步骤二,将获取到的配置值填入至配置模板中的该配置项中。

如果配置项的配置值是实际值,将该实际值填入至配置模板中的对应的配置项中;如果配置项的配置值是预设的函数名称,将通过执行函数名称对应的函数所获取到的相应配置项的配置值填入至配置模板中的该配置项中;如将配置值“5601”填入至配置模板中的“server.port”配置项中,将通过执行${node_ip}对应的函数获取到的配置值“10.100.100.1”填入至配置模板中的“server.host”配置项中;将配置值“default”填入至配置模板中的“server.name”配置项中;将配置值“http://localhost:9200”填入至配置模板中的“elasticsearch.hosts”配置项中;将配置值“zh-cn”填入至配置模板中的“i18n.locale”配置项中等。

步骤s210,根据更新后的待更新配置文件中的配置项,生成目标节点设备的当前配置文件。

在实际实现时,该步骤s210可以通过下述步骤实现:通过填入配置值的配置模板,对目标节点设备的待更新配置文件中的配置项进行渲染处理,生成预设格式的目标节点设备的当前配置文件。

上述预设格式可以包括多种不同的格式,如文本格式或.yml文件格式等,该预设格式可以根据需求进行设定;通过已填入配置值的配置模板,对目标节点设备的待更新配置文件中的配置项进行渲染,使待更新配置文件中的配置项更新为配置模板中所填入的配置值,并按照预设格式生成该目标节点设备的当前配置文件。每个目标节点设备中的大数据组件运行时都需要读取相应的当前配置文件,每个当前配置文件的内容通常并不相同,格式也会有差异。

步骤s212,将当前配置文件发送至目标节点设备,以将目标节点设备中的待更新配置文件替换为当前配置文件。

本发明实施例提供的另一种配置更新方法,该方法重点描述了根据至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件的具体过程,根据该配置更新请求中目标节点设备的待更新配置文件的标识,获取待更新配置文件,合并所述待更新配置文件中,所述目标节点设备的差异配置项以及所述目标节点设备所属的节点组的通用配置项,得到所述目标节点设备的所述待更新配置文件的配置项;根据所述至少一部分配置项的更新值,更新所述待更新配置文件中的配置项;根据更新后的所述待更新配置文件中的配置项,生成所述目标节点设备的当前配置文件。将当前配置文件发送至目标节点设备,以将目标节点设备中的待更新配置文件替换为当前配置文件。该方法中设置了配置管理服务器,通过该配置管理服务器,根据用户提供的配置管理请求为节点设备更新配置文件,该方式不需要工程师手动登录节点设备更改配置,或者在节点设备上运行脚本以更改配置,提高了配置更新的效率。

另外,将大数据组件的配置项基本一致的划分成节点组,针对该节点组中的每个节点设备,将配置值均相同的配置项作为通用配置项,该节点组中只有节点设备的少数差异配置项的配置值不一致,如果需要对通用配置项的配置值进行配置修改更新,可以一次性修改节点组中所有节点设备的通用配置项的配置值,操作比较方便,同时也兼顾了单个节点设备的差异配置项的情况,配置后整体通过配置模版渲染成更新后的当前配置文件,再整体下发到相应的节点设备完成待更新配置文件的替换,对整个大数据集群的单个节点设备无需再判断是否替换某一个配置项。

再者,考虑到每个节点设备上都部署了大数据组件,这些大数据组件很依赖于节点设备资源,该方法中,所有的配置更新操作都集中通过配置管理服务器完成,在节点设备的运算量很小,减少了冗余的逻辑,操作简单,属于轻量级的,因而配置更新过程不需要再去消耗节点设备的资源,从而减轻了节点设备的压力。

本发明实施例还提供另一种配置更新方法,该方法在上述实施例方法的基础上实现;如图3所示,该方法包括如下步骤:

步骤s302,接收针对目标节点设备的配置更新请求;其中,配置更新请求包括目标节点设备的待更新配置文件的标识,以及待更新配置文件中至少一部分配置项的更新值。

步骤s304,根据待更新配置文件的标识,获取待更新配置文件;根据至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件。

步骤s306,根据当前配置文件,更新配置管理服务器中存储的目标节点设备的配置项。

根据所生成的目标节点设备的当前配置文件,更新在配置管理服务器中的配置存储数据库中所存储的该目标节点设备的配置项,以使配置管理服务器中所存储的该目标节点设备的配置项的配置值为当前最新的配置值。

步骤s308,生成并保存配置更新请求对应的配置操作记录。

上述配置操作记录可以理解为当接收到配置更新请求后,在执行上述配置更新过程中所记录的关键操作,如所更新的目标节点设备的主机名、节点组名称、所更新的配置项及对应的更新值等。当配置管理服务器更新所存储的目标节点设备的配置项后,生成该配置更新请求所对应的配置操作记录,并保存在配置管理服务器中,以便于配置回滚和配置的历史信息查询。

步骤s310,将当前配置文件发送至目标节点设备,以将目标节点设备中的待更新配置文件替换为当前配置文件。

本发明实施例提供的另一种配置更新方法,根据该配置更新请求中目标节点设备的待更新配置文件的标识,获取待更新配置文件,根据至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件,根据当前配置文件,更新配置管理服务器中存储的目标节点设备的配置项,生成并保存配置更新请求对应的配置操作记录。将当前配置文件发送至目标节点设备,以将目标节点设备中的待更新配置文件替换为当前配置文件。该方法中设置了配置管理服务器,通过该配置管理服务器,根据用户提供的配置管理请求为节点设备更新配置文件,该方式不需要工程师手动登录节点设备更改配置,或者在节点设备上运行脚本以更改配置,提高了配置更新的效率。

本发明实施例还提供另一种配置更新方法,方法应用于运行有大数据组件的节点设备;节点设备与配置管理服务器连接;配置管理服务器中预先存储有节点设备的配置项;该方法包括如下步骤:

步骤402,如果接收到来自配置管理服务器发送的当前配置文件,获取存储在节点设备中的当前配置文件对应的待更新配置文件,将待更新配置文件替换为当前配置文件。

其中,当前配置文件由配置管理服务器通过下述方式生成:接收针对目标节点设备的配置更新请求;其中,配置更新请求包括目标节点设备的待更新配置文件的标识,以及待更新配置文件中至少一部分配置项的更新值;根据待更新配置文件的标识,获取待更新配置文件;根据至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件。

本发明实施例提供的另一种配置更新方法,如果接收到来自配置管理服务器发送的当前配置文件,获取存储在节点设备中的当前配置文件对应的待更新配置文件,将待更新配置文件替换为当前配置文件。该方法中设置了配置管理服务器,通过该配置管理服务器,根据用户提供的配置管理请求为节点设备更新配置文件,该方式不需要工程师手动登录节点设备更改配置,或者在节点设备上运行脚本以更改配置,提高了配置更新的效率。

为进一步理解上述实施例,下面提供一种配置管理系统的架构示意图,如图4所示,该配置管理系统包括配置管理服务器、配置存储数据库,以及多台运行有大数据组件的节点设备,每台节点设备中还同时部署了配置客户端;配置管理服务器与多台节点设备的配置客户端之间使用rpc进行通信连接;配置管理服务器与多个配置客户端相对应;配置客户端相当于一个软件的功能,是一个独立的功能,用于下发更新后的当前配置文件。在相关技术中,主要是通过工程师手动登录节点设备更改配置,或者在节点设备上运行脚本来更改配置,并不包含配置客户端这个软件功能。

该示意图中以6台节点设备为例进行说明,分别为node_0、node_1、node_2、node_3、node_4和node_5,这6台节点设备被划分为两个节点组,分别为node_0、node_1、node_2和node_3组成的节点组01,以及node_4和node_5组成的节点组02;配置管理服务器用于接收针对目标节点设备的配置更新请求,其中,该目标节点设备的数量可以是一个,如node_0;也可以是多个,当目标节点设备的数量为多个时,可能是需要对节点组中的多台节点设备进行配置更新,如节点组02中的两台节点设备;该配置更新请求中通常包括目标节点设备的待更新配置文件的标识,以及待更新配置文件中至少一部分配置项的更新值;配置管理服务器通过对配置更新请求中进行解析,生成目标节点设备的当前配置文件;配置管理服务器将所生成的当前配置文件发送至对应的目标节点设备,可以通过目标节点设备中的配置客户端接收该当前配置文件,目标节点设备将对应的待更新配置文件替换为当前配置文件。配置管理服务器还用于在接收到外部操作输入的配置更新请求中的配置更新信息的情况下,将配置更新信息发送到配置存储数据库中,如将用户通过前端界面或api输入的数据发送到配置存储数据库中。

下面还提供一种配置更新的逻辑示意图,如图5所示,配置管理服务器首先可以通过对外提供的restapi接收针对目标节点设备的配置更新请求,该配置更新请求中通常会指定节点设备主机名或节点组名称,以及待更新配置文件路径和待更新配置文件名称等标识;然后根据该配置更新请求,通过与配置存储数据库进行交互,获取待更新配置文件,其中包括与配置更新请求相对应的配置模板和配置项,如果配置更新请求中指定的目标节点设备的主机名,则从配置存储数据库读取到的是该目标节点设备所属的节点组的配置模板,该目标节点设备所属节点组的通用配置项,以及该目标节点设备的差异配置项;如果配置更新请求中指定的是节点组名称,则从配置存储数据库读取到的是该节点组的配置模板,该节点组的通用配置项,以及该节点组中每个目标节点设备的差异配置项;根据配置更新请求中所包含的待更新配置文件中至少一部分配置项的更新值,修改这一部分配置项的配置值,之后根据所读取的配置模板和配置项,进行配置模板渲染和配置文件生成,该过程可以分两步进行,第一步是将目标节点设备的节点配置(相当于上述差异配置项)与该目标节点设备所属的节点组配置(相当于上述节点组的通用配置项)merge(合并),生成差异化的目标节点设备的待更新配置文件的配置项,第二步是通过配置模板和merge后的目标节点设备的待更新配置文件的配置项,渲染出最终更新后的配置文件(相当于上述当前配置文件),具体可以针对配置更新请求中的每个配置项,将该配置项的配置值填入至配置模板中该配置项中。

通过填入配置值的配置模板,对目标节点设备的待更新配置文件中的配置项进行渲染处理,生成目标节点设备的更新后的配置文件;最后将所生成的更新后配置文件进行配置下发,可以将更新后的配置文件生成rpc(remoteprocedurecall,远程过程调用)数据包,将该rpc数据包发送给待变更的节点组或目标节点设备,如果是下发到节点组,相当于下发到该节点组中的每个节点设备,也可以理解为,节点组本身没有物理概念,只是把一些节点设备划分成一个组,这些节点设备中有一些通用配置项,最终的更改还是落到节点组中的每一个节点设备上。目标节点设备通过配置客户端接收该rpc数据包,并覆盖对应的待更新配置文件。

具体的,如果配置更新请求中指定的是节点组名称,可以参照如图6所示的一种节点组配置更新及下发的方法,对该节点组中的节点设备的配置文件进行更新,过程如下:用户修改节点组配置全集json(相当于用户对节点组的通用配置项中的至少一部分配置项进行更新),查找节点组所有节点的n个节点特殊配置json(相当于查找节点组中所有n个节点设备的差异配置项),每个节点特殊配置jsonmerge节点组配置(相当于将节点组中每个节点设备的差异配置项与该节点组的通用配置项进行合并),查找配置所对应的模板(相当于查找该节点组所对应的配置模板),通过配置模板渲染出n个配置文件(相当于该节点组中n个节点设备的更新后的当前配置文件),通过rpc下发到n个节点覆盖配置文件(相当于将该节点组中n个节点设备的更新后的当前配置文件以rpc数据包的形式下发到相应的节点设备,并替换所对应的待更新配置文件),生成并保存相应的配置操作记录,向用户操作的前端界面返回用户配置修改成功的信息。通过修改节点组配置可以快速修改该节点组内所有节点设备的配置。

如果配置更新请求中指定的是节点设备主机名,可以参照如图7所示的一种单个节点设备配置更新及下发的方法,对该单个节点设备的配置文件进行更新,过程如下:用户修改节点配置全集json(相当于用户对该节点设备的至少一部分配置项进行更新),查找所在节点组配置json(相当于查找该节点设备所属节点组的通用配置项),节点特殊配置jsonmerge节点组配置(相当于将该节点设备的差异配置项与所属节点组的通用配置项进行合并),查找配置所对应的模板(相当于查找该节点设备所属节点组所对应的配置模板),通过配置模板渲染出配置文件(相当于该节点设备的更新后的当前配置文件),通过rpc下发到节点覆盖配置文件(相当于将该节点设备的更新后的当前配置文件以rpc数据包的形式下发到该节点设备,并替换所对应的待更新配置文件),生成并保存相应的配置操作记录,向用户操作的前端界面返回用户配置修改成功的信息。通过该方式修改单个节点设备时,该节点设备所属节点组中的其他节点设备不受影响。

通过上述轻量级的、可实时推送的配置管理系统及配置更新方法,解决了大数据组件的配置管理问题,通过配置模板管理和渲染实现单个节点设备配置差异化下发功能。

对应于上述方法实施例,本发明实施例提供了一种配置更新装置的结构示意图,装置设置于配置管理服务器;配置管理服务器与多台运行有大数据组件的节点设备连接;配置管理服务器中预先存储有每台节点设备的配置项;如图8所示,该装置包括:接收模块80,用于接收针对目标节点设备的配置更新请求;其中,配置更新请求包括目标节点设备的待更新配置文件的标识,以及待更新配置文件中至少一部分配置项的更新值;获取模块81,用于根据待更新配置文件的标识,获取待更新配置文件;根据至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件;第一替换模块82,用于将当前配置文件发送至目标节点设备,以将目标节点设备中的待更新配置文件替换为当前配置文件。

本发明实施例提供的一种配置更新装置,根据该配置更新请求中目标节点设备的待更新配置文件的标识,获取待更新配置文件,根据该配置更新请求中所包含的待更新配置文件中至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件;将当前配置文件发送至目标节点设备,以将目标节点设备中的待更新配置文件替换为当前配置文件。该装置中设置了配置管理服务器,通过该配置管理服务器,根据用户提供的配置管理请求为节点设备更新配置文件,该装置不需要工程师手动登录节点设备更改配置,或者在节点设备上运行脚本以更改配置,提高了配置更新的效率。

进一步的,多台节点设备划分为至少一组节点组;针对每组节点组,配置管理服务器中存储有该组节点组的通用配置项;该节点组中的每个节点设备的通用配置项的配置值相同;配置管理服务器中还存储有该节点组中的每个节点设备对应的差异配置项;针对该节点组中的每个节点设备,该节点设备的差异配置项的配置值与该节点设备以外的节点设备的差异配置项的配置值不同。

进一步的,获取模块81还用于:合并待更新配置文件中,目标节点设备的差异配置项以及目标节点设备所属的节点组的通用配置项,得到目标节点设备的待更新配置文件的配置项;根据至少一部分配置项的更新值,更新待更新配置文件中的配置项;根据更新后的待更新配置文件中的配置项,生成目标节点设备的当前配置文件。

进一步的,每组节点组预设有配置模板;配置模板中包括节点组中节点的各个配置项;配置更新请求中包括待更新配置文件的全部配置项的配置值;其中,至少一部分配置项的配置值为用户输入的更新值;获取模块81还用于:针对配置更新请求中的每个配置项,将该配置项的配置值填入至配置模板中该配置项中;通过填入配置值的配置模板,对目标节点设备的待更新配置文件中的配置项进行渲染处理,生成预设格式的目标节点设备的当前配置文件。

进一步的,配置管理服务器中还预先存储有多种函数;每种函数设置有函数名称;函数用于获取预设数据;获取模块81还用于:如果该配置项的配置值为预设的函数名称,执行函数名称对应的函数,以获取该配置项的配置值;将获取到的配置值填入至配置模板中的该配置项中。

进一步的,该装置还用于:根据当前配置文件,更新配置管理服务器中存储的目标节点设备的配置项;生成并保存配置更新请求对应的配置操作记录。

本发明实施例所提供的配置更新装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,配置更新装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

本发明实施例还提供了另一种配置更新装置的结构示意图,装置设置于运行有大数据组件的节点设备;节点设备与配置管理服务器连接;配置管理服务器中预先存储有节点设备的配置项;装置包括:第二替换模块,用于如果接收到来自配置管理服务器发送的当前配置文件,获取存储在节点设备中的当前配置文件对应的待更新配置文件,将待更新配置文件替换为当前配置文件;其中,当前配置文件由配置管理服务器通过下述方式生成:接收针对目标节点设备的配置更新请求;其中,配置更新请求包括目标节点设备的待更新配置文件的标识,以及待更新配置文件中至少一部分配置项的更新值;根据待更新配置文件的标识,获取待更新配置文件;根据至少一部分配置项的更新值,以及待更新配置文件中的配置项,生成目标节点设备的当前配置文件。

本发明实施例提供的另一种配置更新装置,如果接收到来自配置管理服务器发送的当前配置文件,获取存储在节点设备中的当前配置文件对应的待更新配置文件,将待更新配置文件替换为当前配置文件。该装置中设置了配置管理服务器,通过该配置管理服务器,根据用户提供的配置管理请求为节点设备更新配置文件,该装置不需要工程师手动登录节点设备更改配置,或者在节点设备上运行脚本以更改配置,提高了配置更新的效率。

本发明实施例还提供了一种服务器或电子设备,用于运行配置更新方法;参见图9所示,包括处理器101和存储器100,该存储器100存储有能够被处理器101执行的机器可执行指令,该处理器101执行机器可执行指令以实现上述实施例所示的配置更新方法。

进一步地,图9所示的服务器或电子设备还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。

其中,存储器100可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。

本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述配置更新方法,具体实现可参见方法实施例,在此不再赘述。

本发明实施例所提供的配置更新方法、装置和服务器和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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