一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

NiFi高可用集群模式的实现方法及系统与流程

2022-07-02 06:23:47 来源:中国专利 TAG:

nifi高可用集群模式的实现方法及系统
技术领域
1.本发明涉及集群技术领域,具体地说是一种nifi高可用集群模式的实现方法及系统。


背景技术:

2.现在的社会是一个高速发展的社会,科技发达,信息流通,人们之间的交流越来越密切,生活也越来越方便,大数据就是这个高科技时代的产物。大数据是如此重要,以至于其数据采集、储存、搜索、共享、分析,乃至可视化地呈现,都成为了当前重要的研究课题,而数据集成和治理是一切大数据应用的开始和前提。在很多项目开发和实施过程中,客户与研发人员开始往往更关注数据的挖掘与分析应用等,但后期才发现数据采集和数据治理才是最大的难点和最耗时耗力的工作。能够及时、快速、准确、完整的将外部数据抽取到大数据平台,对数据进行治理,将数据进行标准化是很多开发人员面临的难题。
3.nifi原有的集群模式,要求所有节点配置数据必须一致,并且各个节点全部正常运行状态,nifi集群才能对外提供服务。集群模式如附图1所示,这种集群架构,其稳定性随着节点的增加而降低。假设,单个节点异常失效的概率为f,集群可用概率p与集群节点数量n之间关系为p=(1-f)n,一旦节点出现异常会导致集群功能异常,存在高可用的问题。
4.当集群节点出现异常时,任务恢复只能手动干预,将正常节点地配置数据覆盖到异常节点,然后重启集群。原有集群模式地维护成本和维护复杂性很高。
5.nifi原始集群模式下,用户创建任务时,任务会创建在每个节点上。任务运行时,绝大多数场景下,任务只在某一个节点运行。这种情况下,其他非执行任务节点的创建任务操作,会造成资源的浪费。同时,现有的指定运行节点功能不够完善,只支持指定主节点运行,会造成主节点压力过大,从而主节点异常,影响集群稳定性。
6.原有nifi集群的任务恢复只能人为干预,并且在恢复过程中会导致组件持久化的状态数据丢失等问题,自动化的任务恢复功能是必要的。
7.综上所述,原有nifi集群在进行数据采集、治理过程中,会存在各种问题,故如何提高nifi集群异常恢复的自动化程度,进而提高nifi的高可用性是目前亟待解决的技术问题。


技术实现要素:

8.本发明的技术任务是提供一种nifi高可用集群模式的实现方法及系统,来解决如何提高nifi集群异常恢复的自动化程度,进而提高nifi的高可用性的问题。
9.本发明的技术任务是按以下方式实现的,一种nifi高可用集群模式的实现方法,该方法是在nifi原有的集群模式中添加master节点和worker节点构建优化后的nifi集群模式,并将集群状态存储在外部redis集群中,保证任务状态数据各个节点均能够根据任务标识进行访问,进而保证异常恢复的任务能够正常获取已经持久化的状态数据;
10.其中,master节点用于配置数据的备份和恢复、任务的负载均衡以及快速恢复失
效节点及其上运行的任务;
11.worker节点用于任务运行。
12.作为优选,优化后的nifi集群模式中,worker节点失效后,在不启动新得节点场景下,失效节点最多为worker节点总数的四分之一;具体为:
13.集群可用概率p与集群节点数量n之前的关系为:
[0014][0015]
其中,i为节点正常数量,j为异常节点数,f为节点失效的概率。
[0016]
更优地,配置数据的备份和恢复是指master节点将自己节点上的配置数据备份到备份数据库,并且在节点异常恢复后,恢复配置数据;即优化后的nifi集群模式下,主节点保存着集群中所有任务的配置信息,主节点的数据不丢失,意味着集群中所有的任务配置不会丢失,从而保证所有任务在集群异常恢复后可以恢复为正常运行状态。
[0017]
更优地,任务的负载均衡的策略包括轮询策略、ip哈希策略及压力最小负载策略;压力最小负载策略是通过压力指数算法选择压力指数最小的节点,节点压力指数与评价参数之间关系为:
[0018]
i=∑p
ici

[0019]
其中,i表示节点压力指数;pi表示评价参数;ci表示评价参数pi的权重。
[0020]
更优地,任务的负载均衡的实现方法具体如下:
[0021]
将用户任务创建在不同的worker节点;
[0022]
worker节点中任务的执行由master节点调度,从而支持更加复杂的调度方式。
[0023]
更优地,快速恢复失效节点及其上运行的任务具体如下:
[0024]
worker节点失效后,master节点根据任务配置信息将任务恢复到worker节点上,并且继续调度任务执行;
[0025]
当worker节点异常宕机后,异常worker节点上的任务有两种恢复方式,具体如下:
[0026]

、新启动一个worker节点,将失效worker上任务恢复到新的worker节点,更新redis中相关组件的状态标识,恢复任务运行状态;
[0027]

、不启动新的worker节点,将失效worker上任务负载到其他正常的worker中,更新redis中相关组件的状态标识,重新调度执行。
[0028]
一种nifi高可用集群模式的实现系统,该系统包括,
[0029]
集群优化模块,用于在nifi原有的集群模式中添加master节点和worker节点构建优化后的nifi集群模式;
[0030]
配置模块,用于将master节点自己节点上的配置数据备份到备份数据库,并且在master节点异常恢复后,恢复配置数据;
[0031]
均衡模块,用于将用户任务创建在不同的worker节点,worker节点中任务的执行由master节点调度,实现任务的负载均衡;
[0032]
恢复模块,用于在worker节点失效后,master节点根据任务配置信息将任务恢复到worker节点上,并且继续调度任务执行,快速恢复失效节点及其上运行的任务。
[0033]
作为优选,所述恢复模块在worker节点异常宕机后,异常worker节点上的任务有
两种恢复方式,具体如下:
[0034]

、新启动一个worker节点,将失效worker上任务恢复到新的worker节点,更新redis中相关组件的状态标识,恢复任务运行状态;
[0035]

、不启动新的worker节点,将失效worker上任务负载到其他正常的worker中,更新redis中相关组件的状态标识,重新调度执行。
[0036]
一种电子设备,包括:存储器和至少一个处理器;
[0037]
其中,所述存储器存储计算机执行指令;
[0038]
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上述的nifi高可用集群模式的实现方法。
[0039]
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如上述的nifi高可用集群模式的实现方法。
[0040]
本发明的nifi高可用集群模式的实现方法及系统具有以下优点:
[0041]
(一)本发明保证了nifi集群在有节点异常时依然正常运行,并且能够快速恢复异常节点上执行任务,同时提高了nifi集群的高可用;
[0042]
(二)本发明通过优化nifi集群架构、增加配置数据备份恢复功能、增加任务负载均衡功能、增加节点失效任务恢复功能等,提高了集群异常恢复的自动化程度,提高了nifi的高可用性,达到nifi集群的高可用目的;
[0043]
(三)本发明通过master节点实现了配置数据恢复,提高了集群任务恢复地自动化,减少人工干预,降低维护人力成本和维护复杂性;
[0044]
(四)本发明实现了负载均衡功能,将任务分布创建和执行,可以提高资源的利用率,从而减少worker节点任务执行时间;
[0045]
(五)本发明通过worker节点实现了任务恢复功能,通过自动化的恢复任务,提高集群的高可用性。
附图说明
[0046]
下面结合附图对本发明进一步说明。
[0047]
附图1为nifi原有集群模式的示意图;
[0048]
附图2为优化后nifi集群模式的示意图;
[0049]
附图3为主节点配置数据备份恢复的示意图;
[0050]
附图4为nifi集群负载均衡的示意图;
[0051]
附图5为nifi worker节点任务恢复方式一的示意图;
[0052]
附图6为nifi worker节点任务恢复方式二的示意图。
具体实施方式
[0053]
参照说明书附图和具体实施例对本发明的nifi高可用集群模式的实现方法及系统作以下详细地说明。
[0054]
实施例1:
[0055]
如附图2所示,本实施例提供了一种nifi高可用集群模式的实现方法,该方法是在nifi原有的集群模式中添加master节点和worker节点构建优化后的nifi集群模式,并将集
群状态存储在外部redis集群中,保证任务状态数据各个节点均能够根据任务标识进行访问,进而保证异常恢复的任务能够正常获取已经持久化的状态数据;这样worker节点数量越多,集群稳定性越高。
[0056]
其中,master节点用于配置数据的备份和恢复、任务的负载均衡以及快速恢复失效节点及其上运行的任务;
[0057]
worker节点用于任务运行。
[0058]
本实施例中的优化后的nifi集群模式中,worker节点失效后,在不启动新得节点场景下,失效节点最多为worker节点总数的四分之一;具体为:
[0059]
集群可用概率p与集群节点数量n之前的关系为:
[0060][0061]
其中,i为节点正常数量,j为异常节点数,f为节点失效的概率。
[0062]
通过可用概率对比可知,新的集群模式可用性优于原有集群模式。
[0063]
如附图3所示,本实施例中的配置数据的备份和恢复是指master节点将自己节点上的配置数据备份到备份数据库,并且在节点异常恢复后,恢复配置数据;即优化后的nifi集群模式下,主节点保存着集群中所有任务的配置信息,主节点的数据不丢失,意味着集群中所有的任务配置不会丢失,从而保证所有任务在集群异常恢复后可以恢复为正常运行状态。
[0064]
如附图4所示,本实施例中的任务的负载均衡的策略包括轮询策略、ip哈希策略及压力最小负载策略;压力最小负载策略是通过压力指数算法选择压力指数最小的节点,节点压力指数与评价参数之间关系为:
[0065]
i=∑p
ici

[0066]
其中,i表示节点压力指数;pi表示评价参数;ci表示评价参数pi的权重。
[0067]
目前支持的评价参数有,p1:cpu使用率,权重0.1。p2:队列缓存数据大小,权重0.3。p3:组件数量,权重0.3。p4:运行线程数量,权重0.3。
[0068]
优化后的master节点,拥有负载均衡功能,支持多种负载均衡策略,如:轮询策略、ip哈希策略、运行组件最少策略、队列数据最少策略等等。
[0069]
本实施例中的任务的负载均衡的实现方法具体如下:
[0070]
(1)、将用户任务创建在不同的worker节点;
[0071]
(2)、worker节点中任务的执行由master节点调度,从而支持更加复杂的调度方式。
[0072]
本实施例中的快速恢复失效节点及其上运行的任务具体如下:
[0073]
worker节点失效后,master节点根据任务配置信息将任务恢复到worker节点上,并且继续调度任务执行;
[0074]
当worker节点异常宕机后,异常worker节点上的任务有两种恢复方式,具体如下:
[0075]

、新启动一个worker节点,将失效worker上任务恢复到新的worker节点,更新redis中相关组件的状态标识,恢复任务运行状态,如附图5所示,;
[0076]

、不启动新的worker节点,将失效worker上任务负载到其他正常的worker中,更
新redis中相关组件的状态标识,重新调度执行,如附图6所示。
[0077]
实施例2:
[0078]
本实施例提供了一种nifi高可用集群模式的实现系统,该系统包括,
[0079]
集群优化模块,用于在nifi原有的集群模式中添加master节点和worker节点构建优化后的nifi集群模式;
[0080]
配置模块,用于将master节点自己节点上的配置数据备份到备份数据库,并且在master节点异常恢复后,恢复配置数据;
[0081]
均衡模块,用于将用户任务创建在不同的worker节点,worker节点中任务的执行由master节点调度,实现任务的负载均衡;
[0082]
恢复模块,用于在worker节点失效后,master节点根据任务配置信息将任务恢复到worker节点上,并且继续调度任务执行,快速恢复失效节点及其上运行的任务。
[0083]
本实施例中的恢复模块在worker节点异常宕机后,异常worker节点上的任务有两种恢复方式,具体如下:
[0084]

、新启动一个worker节点,将失效worker上任务恢复到新的worker节点,更新redis中相关组件的状态标识,恢复任务运行状态,如附图5所示;
[0085]

、不启动新的worker节点,将失效worker上任务负载到其他正常的worker中,更新redis中相关组件的状态标识,重新调度执行,如附图6所示。
[0086]
实施例3:
[0087]
本实施例还提供了一种电子设备,包括:存储器和处理器;
[0088]
其中,所述存储器存储计算机执行指令;
[0089]
处理器执行所述存储器存储的计算机执行指令,使得处理器执行任一实施例的nifi高可用集群模式的实现方法。
[0090]
处理器可以是中央处理单元(cpu),还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通过处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0091]
存储器可用于储存计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现电子设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器还可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,只能存储卡(smc),安全数字(sd)卡,闪存卡、至少一个磁盘存储期间、闪存器件、或其他易失性固态存储器件。
[0092]
实施例4:
[0093]
本实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的nifi高可用集群模式的实现方法及系统。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
[0094]
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
[0095]
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
[0096]
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
[0097]
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
[0098]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献