一种zookeeper客户端的数据处理方法及装置与流程

文档序号:17211769发布日期:2019-03-27 10:51阅读:234来源:国知局
一种zookeeper客户端的数据处理方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种zookeeper客户端的数据处理方法及装置。



背景技术:

zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是一个分布式应用提供一致性服务的软甲,提供的动能包括:配置维护、名字服务、分布式同步、组服务等。一个zookeeper服务器可以连接多台应用服务器。

为了方便开发人员对zookeeper进行维护,zookeeper还提供了简单的客户端,如zoolnspector,用于查看zookeeper集群中各个节点的数据。但是,开发人员无法利用现有的zookeeper客户端无法对节点的数据进行处理,如节点数据的导入、导出、备份和还原,因此,现有的zookeeper的客户端无法满足开发人员处理节点数据的需求。



技术实现要素:

本申请提供了一种zookeeper客户端的数据处理方法及装置,以解决现有的zookeeper客户端无法对节点的数据进行处理,如节点数据的导入、导出、备份和还原,因此,现有的zookeeper的客户端无法满足开发人员处理节点数据的需求的问题。

第一方面,本申请提供了一种zookeeper客户端的数据处理方法,所述方法包括:

获取用户录入的zookeeper集群中服务器的ip地址和对应的端口信息;

根据所述ip地址和对应的端口信息,生成所述服务器信息对应的节点树;

获取所述节点树的所有目标节点和对应的数据处理请求,所述目标节点为用户在所述节点树上选择的节点,所述数据处理请求为所述目标节点删除请求、创建所述目标节点下的子节点的请求、所述目标节点的节点数据的修改、增加和删除请求,以及所述目标节点数据的节点数据的导入或导出请求中的一种;

如果所述数据处理请求为目标节点删除请求、创建所述目标节点下的子节点的请求、以及目标节点的节点数据的修改、增加和删除请求中的一种,则对相应的目标节点和/或目标节点的节点数据进行相应处理;

如果所述数据处理请求为目标节点的节点数据的导入或导出请求,则导入或导出所述目标节点的节点数据。

第二方面,本申请提供了一种zookeeper客户端的数据处理装置,所述装置包括:

第一获取模块,用于获取用户录入的zookeeper集群中服务器的ip地址和对应的端口信息;

生成模块,用于根据所述ip地址和对应的端口信息,生成所述服务器信息对应的节点树;

第二获取模块,用于获取所述节点树的所有目标节点和对应的数据处理请求,所述目标节点为用户在所述节点树上选择的节点,所述数据处理请求为所述目标节点删除请求、创建所述目标节点下的子节点的请求、所述目标节点的节点数据的修改、增加和删除请求,以及所述目标节点数据的节点数据的导入或导出请求中的一种;

处理模块,用于如果所述数据处理请求为目标节点删除请求、创建所述目标节点下的子节点的请求、以及目标节点的节点数据的修改、增加和删除请求中的一种,则对相应的目标节点和/或目标节点的节点数据进行相应处理;

如果所述数据处理请求为目标节点的节点数据的导入或导出请求,则导入或导出所述目标节点的节点数据。

由以上技术方案可知,本申请提供了一种zookeeper客户端的数据处理方法及装置,用户可在节点树选择特定的节点进行节点数据的导入和导出,并通过节点数据的导入和导出可实现对节点数据的备份和还原,可很好的满足用户的实际需求。

附图说明

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

图1为本申请提供的一种zookeeper客户端的数据处理方法的流程图;

图2为图1中步骤102的流程图;

图3为图1中步骤104的一实施例的流程图;

图4为图1中步骤104的另一实施例的流程图;

图5为节点树的结构示意图;

图6为本申请提供的一种zookeeper客户端的数据处理装置的结构示意图;

图7为生成模块的结构示意图;

图8为处理模块的一实施例的结构示意图;

图9为处理模块的另一实施例的结构示意图。

具体实施方式

参见图1,第一方面,本申请实施例提供了一种zookeeper客户端的数据处理方法,包括如下步骤:

步骤101:获取用户录入的zookeeper集群中服务器的ip地址和对应的端口信息。

zookeeper是hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

zookeeper集群一般由三个以上的服务器组成。在部署zookeeper集群时,用户可通过api(applicationprogramminginterface,应用程序编程接口)输入zookeeper集群的配置信息,浏览根据该配置信息生成配置请求,并发送到中控服务器,中控服务器接受该配置请求,生成带部署的zookeeper集群的zookeeper实例的基本配置,从而生成zookeeper实例,并发送给每个待部署的服务器,有每个服务器完成本服务器上的zookeeper实例的部署并且启动部署的zookeeper实例,从而形成zookeeper集群。

步骤102:根据所述ip地址和对应的端口信息,生成所述服务器信息对应的节点树。

步骤103:获取所述节点树的所有目标节点和对应的数据处理请求,所述目标节点为用户在所述节点树上选择的节点,所述数据处理请求为所述目标节点删除请求、创建所述目标节点下的子节点的请求、所述目标节点的节点数据的修改、增加和删除请求,以及所述目标节点数据的节点数据的导入或导出请求中的一种。

目标节点可由用户根据实际需求,在节点树上进行选择,可以选择一个或者多个。本申请实施例提供的zookeeper客户端不仅可实现节点的创建或删除,节点数据的修改、增加或删除,还可实现节点数据的导入和导出,完善了现有zookeeper的功能,增加使用的灵活性。

步骤104:如果所述数据处理请求为目标节点删除请求、创建所述目标节点下的子节点的请求、以及目标节点的节点数据的修改、增加和删除请求中的一种,则对相应的目标节点和/或目标节点的节点数据进行相应处理。

步骤105:如果所述数据处理请求为目标节点的节点数据的导入或导出请求,则导入或导出所述目标节点的节点数据。

由以上技术方案可知,本申请提供了一种zookeeper客户端的数据处理方法,用户可在节点树选择特定的节点进行节点数据的导入和导出,并通过节点数据的导入和导出可实现对节点数据的备份和还原,可很好的满足用户的实际需求。

参见图2,本申请提供的又一实施例中,上述实施例步骤102包括如下步骤:

步骤201:根据所述ip地址和对应的端口信息,查找到zookeeper中相应的根节点。

在zookeeper中,节点是一个跟unix文件系统路径相似的节点,可以向该节点存储数据,或者从该节点获取数据。如果在创建节点时,flag设置为ephemeral,当创建的节点和zookeeper失去连接后,节点将不在存在zookeeper里。每个节点针对不同的服务器具有相应的权限,具体地,通过不同服务器的ip地址和对应的端口信息,与节点设置的访问权限进行匹配,如果匹配成功,则表示该服务器可以访问该节点,获取该节点的节点数据。而在本步骤中,利用用户录入的zookeeper集群中任意一服务器的ip地址和对应的端口信息,查找到相应的根节点,作为节点树的根节点。

步骤202:从根节点开始,利用递归的方法进行搜索,直至搜索到无子节点的叶节点为止,得到节点树。

其中,利用递归方法进行搜索的具体实现方式为:从根节点开始向下游进行搜索,查找根节点是否有子节点,如果存在子节点,则继续搜索从属于根节点的子节点是否存在子节点,以此类推,直至搜索到无子节点的节点,即叶节点为止,得到由根节点、叶节点以及数个中间节点组成节点树,具体地可参照图5所示的节点树,其中,节点a为根节点,节点d、e、f、g为叶节点,其余为中间节点。优选地,生成的节点树可由树形结构展现给用户,以使用户可直观了解与查询的服务器相关的节点关系。

参见图3,在本申请提供的另一实施例中,当所述数据处理请求为导出所述目标节点的节点数据请求时,上述步骤105包括如下步骤:

步骤301:从每个所述目标节点到无子节点的叶节点进行遍历。

目标节点可由用户根据实际需求,在节点树上进行选择,可以选择一个或者多个。具体地,参见图5,假设用户选择了节点,则从节点开始直至节点为止,即遍历节点。

步骤302:获取从每个所述目标节点到无子节点的叶节点的所有节点存储的节点数据。

节点数据包括与该节点相关的数据,如节点配置数据等。

步骤303:导出所有所述节点数据。

步骤304:将从每个所述目标节点到无子节点的叶节点的所有节点及导出的所有节点数据存储至预设的文件中。

将所有节点及导出的节点数据存储在预设的文件中,可对数据进行备份,以防止数据丢失或者篡改时,对节点数据进行还原。

参见图4,当所述数据处理请求为导入所述目标节点的节点数据请求时,上述步骤105包括:

步骤401:获取目标文件,所述目标文件包括每个所述目标节点的第一节点目录以及对应的目标节点数据。

目标文件为用户待导入指定节点的文件,该文件的文件格式必须与本申请提供的zookeeper的客户端的节点存储的文件格式相同。目标文件中可包括所有目标节点对应的节点目录,以及相应的目标节点数据。如果用户将节点树上所有的节点设置为目标节点,则需对所有节点的节点数据进行导入,即全量导入。

步骤402:判断每个所述目标节点是否存储有与所述目标节点的第一节点目录相同的第二节点目录,如果所述目标节点存储有与所述目标节点的第一节点目录相同的第二节点目录,则执行步骤403;如果所述目标节点没有存储与所述目标节点的第一节点目录相同的第二节点目录,则执行步骤404。

步骤403:将所述目标文件中第一节点目录对应的目标节点数据导入所述第二节点目录。

步骤404:创建与所述目标节点的第一节点目录相同的第二节点目录,并将所述目标文件中第一节点目录对应的目标节点数据导入所述第二节点目录。

由以上技术方案可知,用户可根据实际需求,在节点树上选择一个或多个目标节点,导入相应的目标节点数据,并在数据损坏或者丢失的情况下,实现节点数据的还原,提高zookeeper的客户端的数据可靠性和安全性。

参见图6,本申请提供了一种zookeeper客户端的数据处理装置,所述装置包括:

第一获取模块601,用于获取用户录入的zookeeper集群中服务器的ip地址和对应的端口信息;

生成模块602,用于根据所述ip地址和对应的端口信息,生成所述服务器信息对应的节点树;

第二获取模块603,用于获取所述节点树的所有目标节点和对应的数据处理请求,所述目标节点为用户在所述节点树上选择的节点,所述数据处理请求为所述目标节点删除请求、创建所述目标节点下的子节点的请求、所述目标节点的节点数据的修改、增加和删除请求,以及所述目标节点数据的节点数据的导入或导出请求中的一种;

处理模块604,用于如果所述数据处理请求为所述目标节点删除请求、创建所述目标节点下的子节点的请求、以及所述目标节点的节点数据的修改、增加和删除请求的一种,则则对相应的目标节点和/或目标节点的节点数据进行相应处理;

如果所述数据处理请求为目标节点的节点数据的导入或导出请求,则导入或导出所述目标节点的节点数据。

由以上技术方案可知,本申请提供了一种zookeeper客户端的数据处理装置,用户可在节点树选择特定的节点进行节点数据的导入和导出,并通过节点数据的导入和导出可实现对节点数据的备份和还原,可很好的满足用户的实际需求。

进一步地,参见图7,所述生成模块602包括:

查找单元701,用于根据所述ip地址和对应的端口信息,查找到zookeeper中相应的根节点;

搜索单元702,用于从根节点开始,利用递归的方法进行搜索,直至搜索到无子节点的叶节点为止,得到节点树。

进一步地,参见图8,当所述数据处理请求为导出所述目标节点的节点数据请求时,所述处理模块604包括:

遍历单元801,用于从每个所述目标节点到无子节点的叶节点进行遍历;

第一获取单元802,用于获取从每个所述目标节点到无子节点的叶节点的所有节点存储的节点数据;

导出单元803,用于导出所有所述节点数据。

进一步地,所述装置还包括:

存储单元,用于将从每个所述目标节点到无子节点的叶节点的所有节点及导出的所有节点数据存储至预设的文件中。

进一步地,参见图9,当所述数据处理请求为导入所述目标节点的节点数据请求时,所述处理模块604包括:

第二获取单元901,用于获取目标文件,所述目标文件包括每个所述目标节点的第一节点目录以及对应的目标节点数据;

判断单元902,用于判断每个所述目标节点是否存储有与所述目标节点的第一节点目录相同的第二节点目录,如果所述目标节点存储有与所述目标节点的第一节点目录相同的第二节点目录,则将所述目标文件中第一节点目录对应的目标节点数据导入所述第二节点目录;如果所述目标节点没有存储与所述目标节点的第一节点目录相同的第二节点目录,则创建与所述目标节点的第一节点目录相同的第二节点目录,并将所述目标文件中第一节点目录对应的目标节点数据导入所述第二节点目录。

由以上技术方案可知,本申请提供了一种zookeeper客户端的数据处理方法及装置,用户可在节点树选择特定的节点进行节点数据的导入和导出,并通过节点数据的导入和导出可实现对节点数据的备份和还原,可很好的满足用户的实际需求。

本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者或对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以似的一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

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

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