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

一种面向Storm的多粒度可视化监控组件及监控方法

2022-06-11 11:42:53 来源:中国专利 TAG:

一种面向storm的多粒度可视化监控组件及监控方法
技术领域
1.本发明属于大数据计算、流数据处理、系统监控技术领域,特别涉及一种面向storm的多粒度可视化监控组件及监控方法。


背景技术:

2.随着生产生活中实时产生的流数据达到每秒tb的量级,面向大规模的流数据处理平台的应用也越来越广泛。其中storm是开源的、分布式、具有可靠性的流数据计算框架,广泛应用于交通、电力、金融等领域的实时大数据处理中。storm采用主从式架构方式,整个集群由运行nimbus服务的主节点和运行supervisor服务的工作节点组成,由zookeeper负责节点之间的调度和协调。storm ui监测storm集群的实时运行情况,包括cpu、内存、网络流量、nimbus、supervisor和topology等状态信息,但是,大部分的数据无法直接反映storm应用topology的主要状态,且监控粒度是固定的10分钟。
3.由于storm的资源调度机制存在不足,在一定程度上限制了storm集群的处理能力。因此,storm集群的弹性资源调度研究越来越关注。实时地获取集群的资源使用情况和应用的状态信息是实现弹性调度策略的前提和关键。现有的技术以及storm ui无法满足弹性调度的不同需求,且无法直观地监控应用的运行状态。


技术实现要素:

4.本发明的目的是提供一种面向storm的多粒度可视化监控组件,其能够获取实时且可靠的多种监控信息。
5.本发明还提供了一种面向storm的多粒度可视化监控方法,其能够获取任意监控粒度的监控数据,并保证监控数据的实时性和准确性。
6.本发明提供的技术方案为:
7.一种面向storm的多粒度可视化监控组件,包括:
8.数据采集器,其用于从storm ui和日志中获取集群的状态信息;
9.数据处理器,其接收所述数据采集器获取的信息,并且根据监控粒度和监控参数需求,确定相应的监控数据;
10.数据显示器,其用于可视化输出所述监控数据。
11.优选的是,所述数据采集器中引入nfs网络文件系统。
12.一种面向storm的多粒度可视化监控方法,包括:
13.数据采集器从storm集群中获取拓扑组件的状态信息后,在基本信息数据库中创建基本信息数据库表,并在所述基本信息数据库表中写入基本监控信息;
14.数据处理器获取用户设定的监控粒度数据后,根据拓扑中的节点信息动态地创建监控信息数据表,并计算监控数据,将所述监控数据写入监控信息数据库表中;
15.据显示器读取所述监控信息数据库中的数据,并且实时显示读取的数据。
16.优选的是,数据采集器从storm集群中获取拓扑组件的状态信息包括:
17.数据采集器从storm ui restapi中获取状态信息:根据获取的topology信息动态计算每个拓扑对应的storm ui页面地址,以获取ui页面上展示的状态信息;
18.数据采集器从拓扑产生的日志文件中获取ui中并未提供的状态信息:根据storm ui中的拓扑id,计算本地日志文件地址,并访问对应拓扑的日志文件,获取该拓扑的进程和线程的缓存队列的占用情况。
19.优选的是,所述的面向storm的多粒度可视化监控方法,还包括:所述数据处理器通过监控时间粒度控制算法对监控时间粒度进行更正;
20.所述监控时间粒度控制算法包括:
21.设定基本监控粒度;将用户指定的监控粒度与所述基本监控粒度进行取余计算:若计算后余数为0则保持用户指定的监控粒度;若余数为500则将用户指定的监控粒度向下取500毫秒;若余数为1000则将用户指定的监控粒度向上取500毫秒;
22.其中,在取余计算时监控粒度的单位为毫秒。
23.优选的是,所述基本监控粒度设置为1.5秒。
24.优选的是,所述数据处理器根据监控数据统计算法确定监控数据,包括:
25.在用户指定监控粒度后,将更正后的监控粒度与所述基本监控粒度相除计算出该监控粒度需要的统计窗口数量numwin;
26.获取数据采集器最近统计窗口内的基本信息数据,作为第一基本信息数据;
27.获取与所述最近统计窗口间隔为numwin个统计窗口的最远统计窗口内的基本信息数据,作为第二基本信息数据;
28.计算所述第一基本信息数据差值,作为当前次的监控数据;
29.其中,在计算下一次监控数据时,以当前最远统计窗口的前1个统计窗口作为新的最近统计窗口。
30.本发明的有益效果是:
31.(1)本发明提供的面向storm的多粒度可视化监控组件,具有多种监控粒度、通用性接口、可视化、可移植性的优点。
32.(2)本发明提供的面向storm的多粒度可视化监控方法,能够通过监控组件获取任意监控粒度的监控数据,为调度策略调试和实施提供关键的数据支持。
附图说明
33.图1为本发明所述的可视化组件的结构示意图。
34.图2为本发明所述的面向storm的多粒度可视化监控方法的流程图。
35.图3为本发明所述的监控时间粒度控制算法的原理图。
36.图4为本发明所述的监控数据统计算法的原理图。
具体实施方式
37.下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
38.如图1所示,本发明提供了一种面向storm的多粒度可视化监控组件,其能够实时获取和计算storm集群的资源使用情况以及拓扑运行状态,具有多监控粒度、可视化、可移
植、易读写的特点,为面向storm系统设计的弹性调度策略提供实时且可靠的监控数据。所述的可视化监控组件包括:数据采集器、数据处理器、数据显示器三个部分。其中,数据采集器从storm ui和日志中获取集群的状态信息;数据处理器通过设计监控时间粒度控制算法和监控数据统计算法,针对不同的监控粒度和监控参数需求,计算相应的监控数据,最后由数据显示器通过网页的形式进行可视化输出。
39.如图2所示,本发明还提供了一种面向storm的多粒度可视化监控,方案如下:
40.搭建storm集群,配置storm集群,搭建nfs网络文件系统,创建数据库,数据采集器连接storm ui restapi获取基本监控数据(从storm ui自身所提供的监控数据),在获取到集群中活动的拓扑信息后,为拓扑中每一个组件在基本数据库中创建基本信息数据库表,之后以固定时间间隔将每个组件当前的基本状态信息写入所述基本信息数据库表中;用户在指定监控粒度后,数据处理器通过监控时间粒度控制算法和监控数据统计算法计算监控数据并写入监控信息数据库中;最后通过数据显示器,利用可视化工具根据映射规则将监控数据库数据中的数据读出,并实时展示监控数据变化情况。
41.搭建和配置storm集群,主要包括安装jdk、zookeeper、storm框架和配置storm.yaml文件。搭建nfs网络文件系统,主要涉及将storm日志文件目录设置为共享的网络文件目录,实现集群日志文件的同步。搭建基本信息数据库,涉及创建多个数据库表,以及建立数据库表之间的关联,并通过storm ui restapi获取各页面中的统计数据信息,并按照固定的时间间隔将统计数据写入所述基本信息数据库表中。
42.数据采集器引入了nfs网络文件系统,以达到共享集群日志文件的要求,实现任意节点都能访问整个集群的日志信息的功能。
43.数据采集器从storm ui restapi中获取拓扑各组件的状态信息,根据拓扑的运行状态动态地创建和删除数据库表,并周期性地监控数据库中表的状态。数据采集器负责从master节点的storm ui和日志文件logs中获取组件的状态信息,并每隔固定时间间隔存储到数据库中。
44.数据采集器从storm ui restapi中获取状态信息,包括:
45.根据获取的topology信息动态计算每个拓扑对应的storm ui页面地址,以获取ui页面上展示的状态信息,包括:summary页面中所有拓扑的基本信息,topology页面中每个拓扑的总体运行状态信息,component页面中总每个组件的运行状态信息。
46.数据采集器从拓扑产生的日志文件中获取ui中并未提供的状态信息,包括:
47.根据storm ui中的拓扑id,计算本地日志文件地址,并访问对应拓扑的日志文件,获取该拓扑的进程和线程的缓存队列大小以及占用率。
48.数据处理器根据监控算法计算出指定监控粒度的监控数据,并通过可选粒度的监控接口与资源调度组件交互供调度组件使用,支持具有不同监控粒度需求的弹性资源调度策略。
49.数据处理器包括:监控时间粒度控制算法,判断指定时间粒度产生的误差,并进行处理。
50.数据处理器还包括:监控数据统计算法,根据监控时间粒度周期性地计算所需要的监控数据,并自动地在监控信息数据库中创建相应的监控数据信息表并将监控数据写入表中。
51.数据处理器获取指定粒度的监控信息,涉及获取用户指定监控粒度,通过监控时间粒度算法和监控数据统计算法计算合适的监控数据,并将其按照指定监控粒度写入监控信息数据库中。
52.监控组件固定了storm ui的刷新频率,同时,数据采集器以固定时间间隔将基本数据写入基本数据库中,在获得监控粒度后,数据处理器根据基本数据库中的数据计算所需的监控数据。
53.监控信息可视化,涉及捕获监控信息数据库的数据更新,通过可视化工具自动地按照映射规则展示数据变化情况。数据显示器从监控数据库中获取监控数据用于支持可视化展示。利用可视化技术实时地显示监控信息及其趋势变化,方便用户直观地了解系统中所有应用的运行情况。
54.为了监控组件能够运行,storm需要搭载nfs网络文件系统,将集群的日志文件写入共享文件中,实现任意节点可读取集群的所有日志信息,同时在配置storm集群时需要保证集群中所有物理机的supervisor.slots.ports端口号不重复,以及保证所有共享的文件夹权限都为sync(数据同步)权限;在启动监控组件前需要创建数据库,同时,在监控组件中配置创建数据库的用户信息;在拓扑上传之后,数据采集器根据从storm集群中获取到的拓扑信息自动地在基本信息数据库中创建相关基本信息数据库表,并写入基本监控信息;数据处理器在获取到指定监控粒度数据后,根据拓扑中的节点信息动态地创建监控信息数据表,通过监控时间粒度控制算法和监控数据统计算法计算监控数据,将其写入监控信息数据库表中。数据显示器分为三大界面,分别为:主界面、拓扑监控界面、拓扑性能参数对比界面,主界面中设计了所有正在服务的拓扑名称、id以及内部组件的名称的显示框图,同时可以通过组件监控文字链接以及拓扑性能对比文字链接跳转到相应的界面;拓扑监控界面中设计了拓扑中主要参数监控统计结果的框图,同时提供了一个跳转按钮可以跳转至不同监控粒度的监控界面;拓扑性能参数对比界面根据拓扑监控界面中统计的主要参数设计了对一个拓扑进行了不同监控粒度的对比,以及对不同拓扑在相同监控粒度下的主要性能参数对比,将同一拓扑不同监控粒度的性能对比以及不同拓扑同一监控粒度的性能进行对比。每个界面与相关的数据库表字段映射之后,实现动态地在网页上展示集群运行状态。
55.数据处理器采用监控时间粒度控制算法实现监控时间粒度更正。如图3所示,通过设置基本监控粒度,以1.5秒为1个操作周期,监控器在1个操作周期内完成1次数据的读/写操作,并在基本信息数据库中存储1个小时的基本监控数据。在用户指定监控粒度(整数秒)后,将指定的监控粒度与基本监控粒度进行一次取余计算:若计算后余数为0则保持原监控粒度;若余数为500则监控粒度向下取500毫秒;若余数为1000则监控粒度向上取500ms;保证每次的误差都在0到500毫秒之间,从而将监控误差控制在可接受的范围内。
56.如图4所示,在用户指定监控粒度后,数据处理器采用监控数据统计算法将取余调整后的监控粒度与基本监控粒度相除计算出该监控粒度需要的统计窗口数量numwin。然后,获取数据采集器最近统计窗口内的基本信息数据,以及间隔为numwin个统计窗口的最远统计窗口内的基本信息数据(从storm ui自身所提供的监控数据);最后,计算两次数据的差值,作为当前次的监控数据。若连续计算m次监控数据,则以当前最远统计窗口的前1个统计窗口作为新的最近1次统计的开始窗口,并重复上述操作。该算法是实现多粒度监控的关键部分。
57.本发明提出的面向storm系统的多粒度可视化监控组件,开发了可变粒度的监控算法,保证了监控数据的实时性和准确性,使其能够适应大多数的面向storm系统的弹性调度策略,并提供了可视化界面,使监控信息更直观地展示出来。为storm弹性资源调度策略提供实时且可靠的多种监控信息,同时,方便开发人员和管理人员进行高效的策略调试和系统监控。
58.尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。
再多了解一些

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

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

相关文献