掌桥专利:专业的专利平台
掌桥专利
首页

一种大数据技术体系下实现高态势感知能力的方法

文献发布时间:2023-06-19 10:35:20


一种大数据技术体系下实现高态势感知能力的方法

技术领域

本发明涉及一种大数据技术体系下实现高态势感知能力的方法。

背景技术

网络态势是指由各种网络设备运行状况、网络行为以及用户行为等因素所构成的整个网络当前状态和变化趋势。网络态势感知(Cyberspace Situation Awareness,CSA)是1999年Tim Bass首次提出的,网络态势感知是在大规模网络环境中,对能够引起网络态势发生变化的安全要素进行获取、理解、显示以及预测最近的发展趋势。

目前主流的大数据并行计算,并行计算是将一个任务分解成若干个小任务并协同执行以完成求解的过程,是增强复杂问题解决能力和提升性能的有效途径。并行计算可以通过多种途径实现,包括多进程、多线程以及其他多种方式,以Spark框架为例,通常由一个主进程Driver和若干个工作进程Worker;其中Driver部分负责针对Worker组合的任务计划调度和状态监控,Worker中负责主要的计算任务并向Driver给以状态或结果反馈。可充分和更加高效地利用多核计算资源,从而降低单个问题的求解时间,节省成本,也能够满足更大规模或更高精度要求的问题求解需求。但是,对于实时拉取或推送任务执行反馈信息或干预任务执行,目前还无法实现。因此,研究出一种能够实现实时拉取或推送任务执行反馈信息或干预任务执行的通信链接方式是目前需要解决的重要问题之一。

发明内容

发明目的:本发明的目的是提供一种可实时拉取或推送任务执行反馈信息或干预任务执行的大数据技术体系下实现高态势感知能力的方法。

技术方案:为了实现以上目的,一种大数据技术体系下实现高态势感知能力的方法,包括以下步骤:

(1)在Drvier进程中启动基于Netty的服务实例NettyServer,并将所述实例对应的IP和端口注册到ZooKeeper集群中;

(2)在NettyServer中处理各种服务请求并原路返回请求响应;

(3)前端UI建立和大数据计算集群中的Web容器之间建立一个基于TCP的双向通信WebSocket连接;

(4)用户在前端UI将所需动态感知的大数据计算任务的唯一标识ID通过WebSocket连接发送到WEB容器;

(5)WEB容器中对应于WebSocket通信的Handler对象,根据计算任务ID从ZooKeeper集群中获得IP和端口连接参数,创建Netty客户端实例与NettyServer之间建立基于TCP的双向的NIO连接;

(6)Drvier从NettyServer途经NettyClient、Nginx到用户的前端UI之间建立双向的通信链路;用户在前端UI上与Drvier双向通信。

包含多个前端UI实例发起的对于同一个计算任务的动态感知能力。

所述的NettyServer主动推送的信息通过广播形式传达至每个前端UI。

步骤(7)所述的用户前端UI上与Drvier双向通信,包括在前端UI显示由NettyServer主动推送来的当前任务执行细节。

步骤(7)所述的用户前端UI上与Drvier双向通信,包括用户通过前端UI向计算任务的Driver发送指令。

所述Netty服务器实时收集大数据计算任务所产生的参考信息,按照预先预定的协议规则往各客户端连接推送所述信息。

所述的唯一标识ID为Yarn容器中的Application ID。

所述的WebSocket途径Nginx反向代理至WEB容器,所述Nginx配置SSL安全协议。

有益效果:与现有技术相比,本发明提供的,具有以下优点:

1.本发明通过在Drvier进程中启动一个基于Netty的服务实例NettyServer,并将该实例对应的IP和端口注册到ZooKeeper集群中;用户在前端将所需动态感知的大数据计算任务的唯一标识ID通过WebSocket连接发送到WEB容器,WEB容器中对应于WebSocket通信的Handler对象,根据计算任务ID从ZooKeeper集群中获得IP和端口连接参数,创建Netty客户端实例与NettyServer之间建立基于TCP的双向的NIO连接;从而Drvier从NettyServer途径NettyClient、Nginx到用户的前端UI之间就建立了一条双向的通信链路,可实时拉取或推送任务执行反馈信息或干预任务执行。

附图说明

图1为一种大数据技术体系下实现高态势感知能力方法的流程示意图。

具体实施方式

下面结合附图及实施例对本发明作进一步的详细说明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。

首先将本申请实施例涉及的术语解释如下:

Netty:由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

实施例1

根据本发明实施例,提供了一种大数据体系下实现高态势感知能力的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种大数据技术体系下实现高态势感知能力方法的流程示意图,如图1所示,该方法包括如下步骤:包括步骤:

(1)在Drvier进程中启动一个基于Netty的服务实例NettyServer,并将该实例对应的IP和端口注册到ZooKeeper集群中,便于其它模块感知;

(2)NettyServer中处理各种服务请求并原路返回请求响应。Netty服务器用于实时收集大数据计算任务所产生的临时结果或日志等有价值的参考信息,按照预先设定协议规则往各个客户端连接推送上述信息;

(3)前端UI(例如Web浏览器)中建立和大数据计算集群中的Web容器之间建立一个基于TCP的双向通信WebSocket连接;

(4)用户在前端UI将所需动态感知的大数据计算任务的唯一标识ID通过WebSocket连接发送到WEB容器;其中,唯一标识ID为Yarn容器中的Application ID;所述的WebSocket途径Nginx反向代理至WEB容器,所述Nginx配置SSL安全协议;

(5)WEB容器中对应于WebSocket通信的Handler对象,根据计算任务ID从ZooKeeper集群中获得IP和端口连接参数,创建Netty客户端实例与NettyServer之间建立基于TCP的双向的NIO连接;

(6)如图1所示,Drvier从NettyServer途径NettyClient、Nginx到用户的前端UI之间建立一条双向的通信链路。此时用户前端UI上可以实时显示出由NettyServer主动推送来的当前任务执行细节,例如报错的异常堆栈、临时变量或数据集和各种调试信息等。

用户前端UI也可以通过前端UI向计算任务的Driver发送各种指令,例如发送一个待执行的SQL或者是结束计算任务等。

(7)可以有多个前端UI实例发起对于同一个计算任务的动态感知能力。NettyServer主动推送的信息通过广播形式给到每个前端UI。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在发明的保护范围之内。

相关技术
  • 一种大数据技术体系下实现高态势感知能力的方法
  • 一种面向电厂工控系统的态势感知防御能力评估方法
技术分类

06120112607774